次のようにコマンドを実行しています。
# Run
if [[ $1 == A ]]; then
CMDD=(sudo ${path}/my_exe -O ${fileA})
elif [[ $1 == B ]]; then
CMDD=(sudo ${path}/my_exe -O ${fileB})
fi
"${CMDD[@]}" & pid=$!
しかし、同じスクリプトでpidをエコーすると、次のようになります。
echo "pid: " $pid
2345
実行したばかりのプロセスのPIDを取得できませんでした。さて、sudoを使って実行したので、2つのPIDがあります。
2346 2347
したがって、スクリプトでこのコマンドを実行すると、終了しようとしているプロセスは終了しません。
sudo kill -9 $pid
私はいくつかの調査をしましたが、私が作成したプロセスをきちんとした方法で終了する最良の方法を見つけることができませんでした。どんな提案がありますか?
スクリプト例:
#!/bin/bash
# Test
CMDD=(sudo sleep $1 )
"${CMDD[@]}" & pid=$!
echo "pid: " $pid
exit