プロセスの終了まで待機するシェルスクリプト

実はシェルスクリプト自体ほとんど書いた経験が無いので、無駄な部分などがあるかもしれません。気になる点などあればツッコんでください。シェルスクリプトの文法、勘が当てはまらなくて厳しい。

わざわざ変数作らなくて良かった気がしますが、お気に召すように改造してください。以下のスクリプトをwait.shとか適当な名前で保存しておきます。

別のシェルスクリプトの中でプロセスの終了を待ちたいところで、1行程度追加すれば問題なし。hogehogenameに落としたいプロセス名か引数を指定してあげてください。

動作を軽く説明すると、pgrepに-fオプションを与えているので、引数部分にも引っ掛かります。このスクリプトに対象のプロセス名を引数で渡している関係上、自身は確実に見つかるので、見つけたIDが自身のプロセスIDのみかどうかで判断しています。

awkとかsedとか分からない自分から見るとpgrepとかpkillとかすごく便利そうなのに、大抵のサンプルではps auxの後ろでゴニョゴニョした後にxargs killしてるのはなんでだろう。

カテゴリー: サーバ関連, プログラミング関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です