私の目標は、サーバーにリモートでSSHを介して接続し、画面を起動し、スクリプトを起動し、スクリプトを実行し、画面上で私のPythonスクリプトを実行しながらSSHセッションを終了することです。これが私が持っているものです:
ssh -t myuser@hostname screen python somepath.py -s 'potato'
問題は、実行後に手動でCtrl + A + Dを実行し、SSHセッションを直接終了する必要があることです。人の介入なしにこれらすべてを一度に実行する方法はありますか?
編集:-dmを使用して提案されたアプローチを試しました。
見やすくするためにテストしている内容は次のとおりです。
ssh -t user@host screen "top"
リモートで私はこれを見る:
user 2557 0.0 0.2 27192 1468 ? Ss 13:35 0:00 SCREEN top
user 2562 0.0 0.1 11740 932 pts/0 S+ 13:35 0:00 grep --color=auto SCREEN
しかし、これを行うと:
ssh -t user@host screen -dm "top"
私はすぐにホストとの接続を切断しました。私のgrepには何もありません
ps aux | grep SCREEN
user 2614 0.0 0.1 11740 932 pts/0 S+ 13:36 0:00 grep --color=auto SCREEN
ベストアンサー1
-d -m
スクリーンセッションを使用して、次のことができます。
ssh myuser@hostname screen -d -m "python somepath.py -s 'potato'"
これにより、コマンドを実行して自動的にそのセッションからユーザーを分離する新しい画面セッションが作成されます。
このオプションは次のように文書化されています。
-d -m
分離モードで画面を起動します。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。