GNU coreutils timeout
コマンドは、特定のスクリプトの状況に非常に便利で、実行が速い場合はコマンドの出力を使用でき、時間がかかりすぎる場合はスキップできます。
timeout
POSIXで指定されたユーティリティのみを使用する基本的な動作を概算するにはどうすればよいですか?
(私はそれがの組み合わせを含むことができると思っていますwait
、sleep
、kill
そして他に何が、おそらく私はより簡単なアプローチを欠けているを知っています。)
3
シェルスクリプトでのタイムアウトを参照してください。ただし、POSIX以前のシステムへの移植性を要求し、バックグラウンドプロセスを含む一部のソリューションで除外されるstdinとstdoutを保持する必要があるため、これは重複とは見なしません。
—
ジル 'SO-悪であるのをやめる'
command & pid=$! ; sleep 5 && kill $pid
@Pandyaはわずかな競合状態を引き起こしません。
—
ワイルドカード
command
急速に終了pid
すると、kill
コマンドが実行される前に別のプロセスが再利用される可能性がわずかにありますか?実動コードではそれは望ましくありません
解決しようとしている根本的な問題について詳しく説明していただけますか?
—
ジェームズヤングマン
timeout
プログラムをコンパイルして使用するだけではどうですか?
@JamesYoungman、あなたは移植性のためのスクリプトを書くことにあまり精通していないと思います。POSIX準拠(またはPOSIX指定)の方法を要求することは、移植性を意図していることを意味します。ソースコードをバイナリにコンパイルすることは非常に移植性が低く、企業のセキュリティポリシーによっては、運用サーバーにコンパイラがまったくインストールされていない場合があります。
—
ワイルドカード