从 ssh 启动后台屏幕会话。

从 ssh 启动后台屏幕会话。

我想使用 ssh 在“屏幕会话”下向服务器发送一个命令并永远运行!

所以我用的是类似

ssh -t root@server screen -S myinf "python infinit1.py &"

其中 infinit1.py 是脚本。问题是“python infinit1.py”没有进入背景,也没有创建名为“myinf”的屏幕。

我很感谢您的提示。

答案1

这是因为您调用的屏幕需要 pty 才能运行。您需要以分离模式启动屏幕:

ssh root@server screen -d -m -S myinf python infinit1.py

答案2

做这个

 ssh -t root@server "nohup bash -c '( ( /usr/bin/python infinit1.py &> /dev/null ) & )'"

这是因为打开的 tty 需要关闭,因此无法保持命令运行。要查看输出,请将 /dev/null 更改为实际文件名。

我还没有尝试使用远程屏幕,所以我省略了它。您也许可以让它工作,但语法可能有点不对。

答案3

您不需要引号或 & 符号。使用 -d -m 选项以分离模式启动屏幕。查看手册页以获取更多信息。

一个有效的命令行示例是:

ssh $host screen -S myinf -d -m tail -F /var/log/dmesg

相关内容