任意のプロセスの完了を待つコマンド
経緯
すごい時間がかかるコマンドの実行をしたとき、終わったら通知したいみたいなことがある
子プロセスなら wait でいいんだけど、そうじゃないこともあり…
pid 12345 is not a child of this shell で怒られる
$ super_time_consuming_command; notify 'done' とかすればまあいいんだけど、忘れがちですよね
もう実行しはじめちゃったコマンドについてこれをやりたいってわけ
というわけでひたすらそのプロセスがいるかどうかをチェックする的なやつにしました
code:wait_process.sh
PID=$1
while kill -0 $PID 2>/dev/null; do
sleep 1
done
notify 'done'
その場しのぎで作ったからあれだけど、
code::
$ wait_for 12345 notify 'helloworld'
みたいな感じに終わってから実行するコマンドも引数で渡せるようにしたらより便利そうですよね
終了コードとか取れると大変に便利だけども、ちょっと思いつかなかったのでいったんこれで、、