当 ssh 再次连接时进程 ID 消失

当 ssh 再次连接时进程 ID 消失

我有一个 VPSDigitalOcean和一个Ubuntu Droplet.为了执行后台任务,我使用nohup命令。

 # nohup python patrol.py &

一切正常,但是当我关闭 ssh 连接并再次连接时,我发现进程 ID 不存在。Python 任务每 20 分钟向 api 发送一个请求。从 api 服务器控制台,我发现该进程仍然有效。但是从ps命令我找不到进程ID

答案1

ps默认情况下,仅显示在同一终端中运行的进程,因此在 SSH 连接终止后发送到后台的进程将不会显示。

正如手册所说,使用ps -ef或其中之一(手册页):

要使用标准语法查看系统上的每个进程:

ps -e
ps -ef                            
ps -eF
ps -ely

使用 BSD 语法查看系统上的每个进程:

ps ax
ps axu

不过,如果您只想每 20 分钟运行一次,那么运行它cron可以让您不必在系统重新启动时重新启动进程,并且即使先前的运行由于某种原因崩溃,也可以运行未来的任务。

相关内容