Ctrl+z跟Ctrl+c的区别

Ctrl+c和Ctrl+z虽然都是中断命令,但是它们之间还是有区别的。

Ctrl+c是强制中断程序的执行,杀死程序的进程;
Ctrl+z是将任务中断,挂起的状态,进程还存在,任务还没有结束;

用户可以使用fg/bg操作继续前台或后台的任务,;
fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行;

如下图,运行free命令不间断监控系统的内存,然后使用Ctrl+c中断命令的执行:

Ctrl+z跟Ctrl+c的区别_第1张图片
去查看free命令的进程可以发现“free -s 2 -h”的进程已经不存在了,说明已经被杀死了,如图:
在这里插入图片描述
用top工具查看:
Ctrl+z跟Ctrl+c的区别_第2张图片
停止挂起的进程个数为0个;

再执行同样的命令“free -s 2 -h”,用Ctrl+z中断命令的运行:

Ctrl+z跟Ctrl+c的区别_第3张图片
去查看free命令的进程可以发现“free -s 2 -h”的进程还在,如下图:
在这里插入图片描述
用top工具查看:
Ctrl+z跟Ctrl+c的区别_第4张图片
可以看到多了一个停止挂起的进程

#所以Ctrl+c跟Ctrl+z的区别就跟前面说的那样:

Ctrl+c是强制中断程序的执行,杀死程序的进程;
Ctrl+z是将任务中断,挂起的状态,进程还存在,任务还没有结束,用户可以通过使用fg命令将中断的命令再次启动运行;

注意:在运行shell脚本时候如果想要中断进程重新执行,最好用Ctrl+c,因为如果你的shell脚本里面创建了锁文件,用Ctrl+z中断脚本的运行,等下下一次脚本启动的时候,你的锁文件还在,不找出锁文件将其删除,脚本是不能运行的,这样给自己增加了一些麻烦,特别是在处理紧急问题的时候我们的时间更加宝贵。

你可能感兴趣的:(linux系统运维,linux系统操作命令,linux系统)