新しい名前の画面でコマンドを実行する

新しい名前の画面でコマンドを実行する

新しい画面を作成し、その画面でコマンドを実行するスクリプト(開発者Webサーバー)があります。

screen -S webserver -dm sh launch_webserver.sh

ただし、コマンドが完了したりWebサーバーが終了すると画面が破損します。これをどのように避けることができますか?

答え1

コマンドが完了した後に何が起こりたいですか?実行中のコマンドがない場合は、screenセッションが終了するため、セッションを維持するために別のコマンドを実行する必要があります。

ウィンドウを維持し、その中でより多くのコマンドを実行するには、初期コマンドが完了したらシェルを実行します。

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; exec bash -i'

出力を表示するためにウィンドウを保持するには、sleep(無限の引数を使用する)やread(を押すまで待機Enter)などの待機コマンドを実行します。

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; read'

セッションを維持し、ウィンドウを維持するには別のコマンドを実行してください。 screenrcファイルを作成する必要があります(とにかく良い考えです)。

screen -c /path/to/webserver.screenrc

/path/to/webserver.screenrc含む

sessionname webserver
screen -t webserver launch_webserver.sh
screen -t shell bash

関連情報