Bashを介して次のコマンドを呼び出しましたが、画面セッションはまったく作成されませんでした。
screen -d -m time python3 myscript.py ; sleep 1
これにより、screen -r
復元する画面がないことがわかります。しかし、私が試したとき:
screen -d -m time python3; sleep 1
これにより、これを行うとPyコンソールが表示されますscreen -r
。
私は何が間違っていましたか?
答え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
。ログイン時にこのファイルを読みます。