我的目标是通过 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)
您可以使用-d -m屏幕会话来执行以下操作:
ssh myuser@hostname screen -d -m "python somepath.py -s 'potato'"
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的屏幕会话,在其中运行您的命令并自动将您与它分离。
该选项记录为
-d -m
在分离模式下启动屏幕。这会创建一个新会话,但不会附加到它。这对于系统启动脚本很有用。
| 归档时间: |
|
| 查看次数: |
15954 次 |
| 最近记录: |