画面キャプチャ終了ステータス

画面キャプチャ終了ステータス

screenエラーが発生したときに対話できるように実行を続ける長期実行コマンドがあります。しかし、私は他のシェルスクリプト(GNU並列性に似たものを実装する)を通してそれを起動できるようにしたいので、screen -m -D mycommandそれを使用していますが、うまくいきます。ただどのようにして得るのか分からないようです。終了ステータス - 宿題の再起動に失敗することは非常に重要です。

screen子プロセスの終了ステータスを返す方法はありますか?テストケースで遊ぶには:

screen -mD sh -c "exit 1"
echo $?
# prints 0; would like something that prints 1

ベストアンサー1

このフラグを試してみてください-L

-L:Windowsの自動出力ロギングをオンにするように画面に指示します。

screenlog.0私にとってこれは、次の画面を実行すると、すべての出力を記録する作業ディレクトリに呼び出されるファイルを生成します。

screen -mDL sh -c 'your_command || echo $?'

または多分

screen -mDL sh -c 'your_command; echo $?'

その後、ファイルの最後の行に終了コードがあることを確認できます。おそらく全体の結果は次のようになります。

screen -mDL sh -c 'your_command; echo $?' && tail -1 screenlog.0

おすすめ記事