プログラムがpsまたはttyから出てくるかどうかわからない場合は、「screen」コマンドをどのように使用しますか?

プログラムがpsまたはttyから出てくるかどうかわからない場合は、「screen」コマンドをどのように使用しますか?

起動時に起動するPythonプログラムを作成しています。このように、「画面」コマンドを介してプログラムと対話できることを願っています。その後、他のtty、ssh、またはその他の手段を介してプログラムと通信する必要がある場合は、これを行うことができます。

私はそれを維持し、bashスクリプトを使用して画面がどこにあるかを見つける必要なしに私の端末に画面を接続することができます。なぜなら、画面にアクセスするには(端末を使用せずに)他の人が必要なからです。

ベストアンサー1

正しいスクリーンセッションに接続する最も信頼性の高い方法は、Pythonスクリプトを指定されたファイルに書き込んでscreen実行中のセッションを報告することです。プロセスIDの代わりにTTYを報告することを除いて、PIDファイルと同じだと思います。そうではなく、複数のscreenセッションがある場合は推測が必要です。

したがって、Pythonプロセスを起動するときは、次を実行します。

echo "$STY" > /var/run/python-proc.screen

...またはPythonプログラム自体内で

with open('/var/run/python-proc.screen', 'w') as f:
    print(os.environ['STY'], file=f)

その後、ユーザーは以下を実行して接続できます。

screen -x -m `cat /var/run/python-proc.screen`

おすすめ記事