linux中断信号命令 linux中断发送信号给进程( 四 )


黄色方框:ps -j 已经没有了 1344 sleep 的进程 。
蓝色方框:jobs -l 后台也没有指令 。
3)、kill -2 配合 bg 查看中断挂起的进程 。
通过上面的思路 , kill -2 配合 bg 实验看看效果 。同样的首先挂起一个命令 , 状态为 stopped 暂停 。然后用 bg 命令恢复执行 。
前面的步骤都是一样 , 挂起一个命令 。通过 ps 和 jobs 查看进程和后台确认有 1379 的进程,状态为 stopped 暂停 。然后执行 kill-2 中断进程,再次通过ps 和 jobs 查看进程和后台命令 。确认状态为 stopped1379 的进程仍然存在 。
此时,用 bg 恢复运行挂起的命令,系统提示 sleep 命令已恢复在后台运行 。然而通过 ps -j 查看进程会发现 sleep 已经被中断 。jobs -l 查看后台也没有了运行的 sleep 命令了 。
从实验上看:
1、后台命令运行时(Running),执行 kill -2 可以中断进程 。
2、挂起命令,处于暂停状态时(Stopped),执行 kill -2 后通过 ps 还可以查询到进程 ,  jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态 。实际上 , 用 fg 把暂停的后台进程调至前台运行时,系统反馈 sleep 命令调至前台运行 。而再用 ps 查询不到进程 , 已经中断了进程 。用 jobs 已经查询不到后台命令 。
3、挂起命令,处于暂停状态时(Stopped),执行 kill -2 后通过 ps 还可以查询到进程,jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态 。用 bg 把暂停的后台命令恢复运行时,系统反馈 sleep 命令在后台运行 。再用 ps 查询进程已经中断,用 jobs 已经查询不到后台命令 。
linux后台任务执行在命令后面加上可实现后台运行 。使用示例:
但仅使用命令 , 当关闭控制台终端时,任务同样会被终止 。
nohup(no hang up)命令,即忽略SIGHUP信号 。nohup能保证关闭控制台终端时,任务不被终止:
关闭控制台终端后,通过ps查看,easeapi.sh 的父进程由终端进程变成了init进程,即使关闭终端,任务依然能保持运行 。nohup命令默认会在当前目录创建nohup.out文件存储输出信息 。如果要输出到指定文件则:
nohup命令虽然简单,但在一些情况下可能并不好用 。比如,想使用scp命令从需要验证的服务端下载文件时,直接使用nohup命令并不会出现验证交互 。这种情况下 , 推荐使用bg/fg命令 。
Ctrl + C 和 Ctrl + Z是linux中两种中断命令,但作用有不同 。Ctrl + C是强制中断进程,而Ctrl + Z则是暂停任务执行 。在终端中正常执行scp命令,输入账户密码后,使用Ctrl + Z暂停任务 。
jobs命令显示当前任务状态 。
可以看到任务已经暂停,任务编号为1 。
bg/fg将可将任务在前后台切换 。现在将任务切换到后台:
在通过jobs查看,任务状态已变成了running:
当关闭终端后,任务可能会被终止 。可使用disown命令忽略SIGHUP信号 。
linux中断信号命令的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于linux中断发送信号给进程、linux中断信号命令的信息别忘了在本站进行查找喔 。

推荐阅读