#!/bin/bash
trap 'kill $(jobs -p)' EXIT
mintty -e "some commands" &
wait
上記のスクリプトは標準的なサブプロセスkillの手順だが、これだと終了時にminttyのサブプロセスのPIDを捕まえられずにエラーが返ってくる。なんでPIDとれないんじゃろかと思って man mintty すると、どうもminttyは起動時にdaemon化(と言うのかは知らんが)して子プロセスから離脱してしまうらしい。で、そのdaemonを止めるために -d というオプションがあるらしい。
したがって以下のようにminttyのコマンドを修正することで無事に jobs -p でPIDを取得できた。
#!/bin/bash
trap 'kill $(jobs -p)' EXIT
mintty -d -e "some commands" &
wait
0 件のコメント:
コメントを投稿