ssh + nohup 不起作用

ssh + nohup 不起作用

我正在尝试通过 SSH 运行一个程序,该程序在断开连接时继续运行。这个堆栈溢出答案给了我以下命令:

nohup sleep 30 > foo.out 2> foo.err < /dev/null &

不幸的是,它似乎不起作用。我登录 ( ssh -Y) 到远程 bash shell 并执行它,断开连接,然后在 30 秒内返回,但jobs没有显示任何内容,foo文件也没有显示任何内容。注销后还有其他方法可以通过 ssh 运行后台作业吗?

答案1

ssh user@server "echo /usr/run/my/job | at now +1 min"

答案2

jobs如果您在另一个 shell 中生成该进程,则不会显示任何内容;其手册页描述的第一行是:

作业实用程序应显示在当前 shell 环境中启动的作业的状态

因此,您可以 ssh 到计算机sleep 30 &,然后从另一个窗口 ssh,但jobs即使该进程显然仍在运行,仍然不会在另一个窗口中显示任何内容。你所拥有的命令有效;尝试使用pspgrep来检查它(例如pgrep sleep

相关内容