Bashで同時に実行される2つのコマンドを終了します。

Bashで同時に実行される2つのコマンドを終了します。

bashスクリプト(そのうちの1つは別のbashスクリプト)で両方のコマンドを同時に実行したいのですが、Ctrl + Cを押すと両方のコマンドを停止する必要があります。私のbashスクリプトは次のようになります。

#!/bin/bash

./command1 &

exec "/path/to/bash2" 

Bash2から:

#!/bin/bash

[..]
python run.py

これら2つのコマンドを終了するには、トラップを追加する必要がありますか?その場合、bashに以下を追加しても役に立ちません。

trap killgroup SIGINT

killgroup(){
  echo killing...
  kill 0
}

ベストアンサー1

kill正しいPIDを使用していることを確認するには、以下を試してください。

./command1 &
childpid=$!
trap "kill -TERM ${childpid}" EXIT

おすすめ記事