スクリーンセッションを開始できません

スクリーンセッションを開始できません

bash 経由で次のコマンドを呼び出していますが、screen セッションがまったく作成されません。

screen -d -m time python3 myscript.py ; sleep 1

すると、screen -r再開する画面がないと表示されます。しかし、私が試してみると:

screen -d -m time python3; sleep 1

それを実行すると、screen -rPy コンソールが表示されます。

私が何を間違っているのでしょうか?

答え1

screen -d -m time python3 myscript.pyスクリーン セッション内で実行されpython3 myscript.py、その後終了します。後でスクリーン セッションが表示されない場合は、スクリプトがすでに終了しているためです。

もっと長く実行することを想定していたようですmyscript.py。何か問題が発生したに違いありません。何が起こっているかを確認するには、出力 (特にエラー) をファイルにリダイレクトしてください。または、別のプログラムを実行してセッションを維持してください。

screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'

スクリプトを画面から直接実行すると動作しないが、対話型シェルから実行すると動作する場合、次の 2 つのことを示している可能性が非常に高くなります。

  • myscript.py何らかの設定、おそらく環境変数に依存します。自己完結的ではありません。
  • この設定を間違った場所に設定しています。 で環境変数を設定している可能性がありますが.bashrc、これは対話型シェルによってのみ読み取られます。.profile代わりに で環境変数を設定してください。このファイルはログイン時に読み取られます。

関連情報