起動してログファイルに出力するプロセスがあります。これを開始するスクリプトはGNUで始まり、screen
次にtail
。
プロセスはすぐにログファイルに書き始め、プロンプトに戻る前に設定エラーを見つけるためにこの方法で起動するのを見ることができると便利ですctrl-c
。私はこれがtail
録音中のプロセスを停止して終了しないことを知っています。
screen
私が望むのは、実行中のプロセスが初期化が完了した後にのみアクションを取るシェルスクリプトで2番目の監視プロセスを開始することです。これはすべての開始ログ出力後にのみ発生します。
screen
起動スクリプトを繰り返してプロセスが初期化され、操作が実行されるのを待つと、ライブtail
出力が失われます。ループ内で待機中にログを監視してその内容を出力しようとすると、ユーザーは初期化がctrl-c
完了するのを待つループを中断しない限り、スクリプトを早く終了できません。
監視ファイルとtail -f
ログファイルをサポートするためにジョブを開始し、ログオフしてもジョブが終了しないことを確認disown
できます。
これは簡単な質問に関する多くの情報ですが、より良い選択肢があるかどうかを明確に説明するために、私のユースケースに関連するすべての詳細を含めたいと思いました。
また、注目すべき点は他のものを始めることができますが、screen
対話する必要はなく、disown
より簡単なオプションのようです。
また、親シェルへの出力を防ぐために、必要に応じて出力をリダイレクトする必要があることも知っています。
スクリプトで実行した後にログアウトして再度ログインしたときに正しくテストされ実行されるサンプルコード:
#!/bin/bash
( sleep 10s; echo 1 > b ) &
disown