子程序自動終止 - Linux

Table of Contents

想問一下
如果說在script中設計一些背景執行的指令
例如
command1 &
command2 &

如何在終止(用ctrl + C)這些script後一併把這個script所觸發的所有子程序殺掉

一般來說都要使用ctrl + Z 後
在kill jobs 才有辦法一次殺光
但ctrl + C則會把背景指令繼續放在背景後

--
Sent from my Windows

--

All Comments

Vanessa avatarVanessa2019-07-16
trap 攔截 INT 信號,用 jobs -p 列出 pid 呼叫 kill
結束
Poppy avatarPoppy2019-07-20
預設背景的命令會收到 sighup ,但少數程式會忽略。
Audriana avatarAudriana2019-07-22
用 while kill %%; do true; done ,jobs 互動性有點問
Kristin avatarKristin2019-07-26
題,理論上 $() 或 pipe 都是開子程序進行的,但背景程
Oliver avatarOliver2019-07-27
序是掛在母程序下,所以 sh 是沒辦法用 $(jobs) 拿到
母程序 jobs 的輸出;除非用 jobs -p >job-list
Audriana avatarAudriana2019-08-01
感謝樓上幾位 我試試看這些指令