作者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/m.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