[問題] 子程序自動終止

看板Linux作者 (AL)時間6年前 (2019/07/13 16:19), 編輯推噓1(107)
留言8則, 3人參與, 6年前最新討論串1/1
想問一下 如果說在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

07/13 17:05, 6年前 , 1F
trap 攔截 INT 信號,用 jobs -p 列出 pid 呼叫 kill
07/13 17:05, 1F

07/13 17:05, 6年前 , 2F
結束
07/13 17:05, 2F

07/13 18:54, 6年前 , 3F
預設背景的命令會收到 sighup ,但少數程式會忽略。
07/13 18:54, 3F

07/13 18:55, 6年前 , 4F
用 while kill %%; do true; done ,jobs 互動性有點問
07/13 18:55, 4F

07/13 18:57, 6年前 , 5F
題,理論上 $() 或 pipe 都是開子程序進行的,但背景程
07/13 18:57, 5F

07/13 18:58, 6年前 , 6F
序是掛在母程序下,所以 sh 是沒辦法用 $(jobs) 拿到
07/13 18:58, 6F

07/13 18:58, 6年前 , 7F
母程序 jobs 的輸出;除非用 jobs -p >job-list
07/13 18:58, 7F

07/16 21:53, 6年前 , 8F
感謝樓上幾位 我試試看這些指令
07/16 21:53, 8F
文章代碼(AID): #1TAPGE9t (Linux)
文章代碼(AID): #1TAPGE9t (Linux)