
zsh
多数のスクリーン セッションを起動し、それぞれで異なるコマンドを実行するスクリプトを作成しました。スクリプトを実行すると、合計 72 個のスクリーンが存在するため、job
終了したかどうかを手動で確認するのは非常に時間のかかる作業です。スクリーン セッションに実行中のジョブがあるかどうかを確認し、実行中のジョブがない場合はセッションを終了する別のスクリプトを実行できますか。何かアイデアはありますか。すべてのスクリーン セッションで何が起こったかを確実に確認する方法は思いつきませんでした。よろしくお願いします。
答え1
私は想像できる出力ログ画面の機能がこれを実現するのに役立ちます(マニュアルページ詳細については、こちらをご覧ください。セッションの出力ログを生成し、それを確認してジョブが終了したかどうかを確認できます。
または、実行中のプロセスのツリーをチェックして ( などを使用してpstree
)、screen セッション内のシェルにまだ実行中の子プロセスがあるかどうかを確認することもできます。ただし、pstree
スクリプトで の出力を解析するのは面倒でエラーが発生しやすいと考えられるため、そのためにはカーネル インターフェイス (実行中のプロセス ツリーを取得するため) を使用する必要があるかもしれません。