看板 Linux 關於我們 聯絡資訊
想問一下 如果說在script中設計一些背景執行的指令 例如 command1 & command2 & 如何在終止(用ctrl + C)這些script後一併把這個script所觸發的所有子程序殺掉 一般來說都要使用ctrl + Z 後 在kill jobs 才有辦法一次殺光 但ctrl + C則會把背景指令繼續放在背景後 -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.120.159 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1563005966.A.277.html
kenduest: trap 攔截 INT 信號,用 jobs -p 列出 pid 呼叫 kill 07/13 17:05
kenduest: 結束 07/13 17:05
hijkxyzuw: 預設背景的命令會收到 sighup ,但少數程式會忽略。 07/13 18:54
hijkxyzuw: 用 while kill %%; do true; done ,jobs 互動性有點問 07/13 18:55
hijkxyzuw: 題,理論上 $() 或 pipe 都是開子程序進行的,但背景程 07/13 18:57
hijkxyzuw: 序是掛在母程序下,所以 sh 是沒辦法用 $(jobs) 拿到 07/13 18:58
hijkxyzuw: 母程序 jobs 的輸出;除非用 jobs -p >job-list 07/13 18:58
k97231: 感謝樓上幾位 我試試看這些指令 07/16 21:53