SSHを介してリモートで画面セッションを開始し、すぐにSSHセッションを閉じます。

SSHを介してリモートで画面セッションを開始し、すぐにSSHセッションを閉じます。

私の目標は、サーバーにリモートで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
分離モードで画面を起動します。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。

~へScreenのGNUドキュメントページ

おすすめ記事