GNU/Linux >> Linux の 問題 >  >> Linux

コマンドの標準をT秒間破棄しますか?

私は以下を含むいくつかのバッチスクリプトに取り組んでいます:

  • いくつかの非終了サブプロセスを(非同期で)実行します
  • tを待ちます
  • 他のタスクを実行するX しばらくの間
  • サブプロセスを終了する

理想的には、以前に放出されたサブプロセスの標準を区別できるようにしたいと思います。 X に放出されたものから X

いくつかのアイデアが思い浮かびますが、それらをどのように実装するかはわかりません。

  • tのstdoutを破棄します 秒
  • セクションを視覚的に区切るために、テキスト(たとえば、「タスクXが開始されました」)を挿入します
  • stdoutをさまざまな出力ストリームに分割します

承認された回答:

execで問題を複雑にすることもできますが そして余分なファイル記述子のラングリング、あなたの2番目の提案は最も簡単です。 Xを開始する前に 、echo ログファイルへのマーカー文字列。

これらのコマンドはすべて同じファイルに追加されるため、 Xのすべての出力を追加することをお勧めします。 マーカーを使用すると、その出力を、まだ実行中の前のコマンドの1つと区別できます。次のようなもの:

{ X; } | sed 's,^,[X say] ,'

これにより、さらなる分析がはるかに簡単になります。安全ではなく、非常に冗長なプログラムの場合、競合状態が頻繁に発生します。

1つのログ行を壊して、結果なしにアプリの最初のバッチを中断できる場合は、これも機能します。

{ Y; } >> log &
sleep $t
kill -STOP %% # last job, like the same as %1
echo -e "nX started" >> log
kill -CONT %%
{ X; } >> log2

Linux
  1. Linuxコマンドラインに関する8つのヒント

  2. テキストをファイルに書き込むためにLinuxのcatコマンドを使用できますか?

  3. Netcat コマンド ラインの問題

  1. 初心者向けのDNFコマンドの例

  2. コマンドにパイピングするためにSplittoStdoutのようにファイルを分割する方法は?

  3. コマンドラインユーティリティのファイル名としてstdoutを渡しますか?

  1. Linuxユーザー向けの12のIPコマンド例

  2. 初心者向けのLinuxdirコマンド(10例)

  3. id -r コマンドの適切な構文