[解決済み] Bashで指定されたタイムアウト後に子プロセスを終了させるには?
2022-04-13 01:27:33
質問
私は子プロセスを起動するbashスクリプトを持っていますが、時々、明確な理由もなくクラッシュ(実際にはハング)します(クローズドソースのため、それについて私ができることはあまりありません)。その結果、私はこのプロセスを一定時間起動し、一定時間後に正常に戻らなかった場合にそれを殺すことができるようにしたいと思います。
はあるのでしょうか? シンプル と 堅牢 は、bashを使ってそれを実現する方法を教えてください。
追伸:この質問はserverfaultとsuperuserのどちらが適しているか教えてください。
解決方法は?
(見たまま BASH FAQ エントリー #68: "コマンドを実行して、N秒後に中止(タイムアウト)させるにはどうしたらいいですか? )
ダウンロードしても構わない場合は
timeout
(
sudo apt-get install timeout
のように使用します。(ほとんどのシステムにはすでにインストールされています。) そうでない場合は
sudo apt-get install coreutils
)
timeout 10 ping www.goooooogle.com
もし、何かをダウンロードしたくない場合は、timeoutが内部で行っていることを行ってください。
( cmdpid=$BASHPID; (sleep 10; kill $cmdpid) & exec ping www.goooooogle.com )
bashのコードが長い場合にタイムアウトさせたい場合は、2番目のオプションをこのように使用します。
( cmdpid=$BASHPID;
(sleep 10; kill $cmdpid) \
& while ! ping -w 1 www.goooooogle.com
do
echo crap;
done )
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Linuxで特定のポートで動作しているプロセスを停止させる方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepinシステムからログアウトする方法は?deepinシステムからログアウトし、ユーザーを切り替える方法
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
deepin20の不正確な時刻表示を調整する方法は?Deepinの時刻補正方法
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
linux(ubuntu 18.04)でのアイデア運用データベース障害問題について
-
apache startup error (98) Address already in use: make_sock: could not bind to...
-
[解決済み] gzip: stdin: gzip 形式ではありません tar: 子プロセスはステータス 1 を返しました。エラーは回復不可能: 現在終了中
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] bash sh - command not found [重複].
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?