作者k97231 (AL)
看板Linux
标题[问题] 子程序自动终止
时间Sat Jul 13 16:19:24 2019
想问一下
如果说在script中设计一些背景执行的指令
例如
command1 &
command2 &
如何在终止(用ctrl + C)这些script後一并把这个script所触发的所有子程序杀掉
一般来说都要使用ctrl + Z 後
在kill jobs 才有办法一次杀光
但ctrl + C则会把背景指令继续放在背景後
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.120.159 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1563005966.A.277.html
1F:→ kenduest: trap 拦截 INT 信号,用 jobs -p 列出 pid 呼叫 kill 07/13 17:05
2F:→ kenduest: 结束 07/13 17:05
3F:推 hijkxyzuw: 预设背景的命令会收到 sighup ,但少数程式会忽略。 07/13 18:54
4F:→ hijkxyzuw: 用 while kill %%; do true; done ,jobs 互动性有点问 07/13 18:55
5F:→ hijkxyzuw: 题,理论上 $() 或 pipe 都是开子程序进行的,但背景程 07/13 18:57
6F:→ hijkxyzuw: 序是挂在母程序下,所以 sh 是没办法用 $(jobs) 拿到 07/13 18:58
7F:→ hijkxyzuw: 母程序 jobs 的输出;除非用 jobs -p >job-list 07/13 18:58
8F:→ k97231: 感谢楼上几位 我试试看这些指令 07/16 21:53