在使用linux的时候,有时候会按Ctrl+Z 或 Ctrl + C来中断某个有BUG的程序或者是自己不小心写出来的无限循环。。。。。
解释如下:
ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;
ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并 非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。。
ctrl-d: ( Terminate input, or exit shell ) 一个特殊的二进制值,表示 EOF,作用相当于在终端中输入exit后回车;
还有以下几个:
ctrl-/ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件
ctrl-s 中断控制台输出
ctrl-q 恢复控制台输出
ctrl-l 清屏
比如有一个无限循环的shell程序如下
#! /bin/bash
while echo "I'm making files!"
do
mkdir adir
cd adir
touch afile
sleep 2s
done
运行后会无限增加目录
这时候使用Ctrl + Z 或 C就可以结束
不过 用其他方法试一试
新开一个Termial
lsof badpro #列出程序的进程号
输入Kill 程序进程号 就可以结束
还有一种就是使用ps
ps aux | grep badpro
然后找到对应的程序进程号进行 kill就可以了。