誤解というか、様々な意味に取られそうなタイトルですが、
私がやりたかったことは以下のようなケースです。
・tcpdumpのような延々と続く動作を複数動作させたい
・でも終了させるときは Ctrl-C で一発で全部消したい
要は、並列で複数プロセスを動作させるのでバックグラウンドで起動して、
それらを一発で終了させたいという要望です。
#!/bin/bash
trap killall SIGINT
killall(){
echo 'good bye'
kill 0
}
hello () {
echo 'hello'
sleep 1
hello
}
yeah () {
echo 'yeah'
sleep 1
yeah
}
chao () {
echo 'chao'
sleep 1
chao
}
hello &
yeah &
chao &
wait
結論としては、 Ctrl-C で送信される SIGINT をトラップして kill 0 に差し替える、ということでした。