通过 ssh 远程启动屏幕会话并立即关闭 ssh 会话

She*_*. S 6 ssh gnu-screen

我的目标是通过 ssh 远程连接到服务器,启动屏幕,启动脚本,让脚本运行,然后退出 ssh 会话,同时保持屏幕运行自己的 python 脚本。这就是我所拥有的:

ssh -t myuser@hostname screen python somepath.py -s 'potato'
Run Code Online (Sandbox Code Playgroud)

问题是,在我运行它之后,我必须手动 ctrl + a + d,然后自己退出 ssh 会话。有没有一种方法可以一次性完成所有工作而无需人工交互?

编辑:我已经尝试了使用 -dm 的建议方法

这是我正在测试以使其更容易看到的内容:

ssh -t user@host screen "top"
Run Code Online (Sandbox Code Playgroud)

远程我看到这个:

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
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

ssh -t user@host screen -dm "top"
Run Code Online (Sandbox Code Playgroud)

我立即关闭了与主机的连接。我的 grep 中没有任何内容

ps aux | grep SCREEN
user      2614  0.0  0.1  11740   932 pts/0    S+   13:36   0:00 grep --color=auto SCREEN
Run Code Online (Sandbox Code Playgroud)

Eri*_*ouf 7

您可以使用-d -m屏幕会话来执行以下操作:

ssh myuser@hostname screen -d -m "python somepath.py -s 'potato'"
Run Code Online (Sandbox Code Playgroud)

这将创建一个新的屏幕会话,在其中运行您的命令并自动将您与它分离。

该选项记录为

-d -m
在分离模式下启动屏幕。这会创建一个新会话,但不会附加到它。这对于系统启动脚本很有用。

屏幕GNU 文档页面上