コマンドを実行して分離する画面を作成します。

コマンドを実行して分離する画面を作成します。

これを自動化するために、bashコマンドの1行を実行したいと思います。

screen -S myserver 
python myserver.py  # inside the new screen
CTRL A, D (detach)

私はこれがうまくいかないと思います:

screen -S myserver && python myserver.py

python myserver.py始まらないから~へこれscreen

答え1

プログラム実行後すぐに取り外し可能~へ画面:

screen -dmS myserver python myserver.py

~から画面のマニュアルページ

-DM 分離モードの実行画面です。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。

答え2

@Stefan Mの答えは良いですが、コマンドが終了すると画面全体が終了するため、画面内でコマンドを実行するのとは異なります。実際に画面でコマンドを実行すると、コマンドの終了時にシェルが残ります。

次のコマンドを使用してシェルを保存できます。

screen -s "/bin/bash" -dmS myserver; screen -S myserver -X stuff "python myserver.py\n"; 

これにより、まずシェルで画面が起動され、次にそのシェルで実行されるコマンドがいくつか送信されます。これは、画面に直接これらのコマンドを入力するのと同じです。

詳細なスクリプトはここで確認できます。https://unix.stackexchange.com/a/766301/598166

関連情報