在nohup之后工作-l

我怎样才能监控一个仍然在运行的工作(我猜是脱离了?),在我用nohup启动后,退出服务器并重新login? 通常,我使用jobs -l来查看正在运行的内容,但是这显示为空白。

您需要了解流程和工作之间的差异 。 作业是由shell管理的,所以当你终止你的终端会话并开始一个新的时候,你现在处于一个带有自己的作业表的新的Bash实例。 您不能从原始shell中访问作业 ,但是如其他答案所指出的那样,仍然可以找到并操作已启动的进程 。 例如:

 $ nohup sleep 60 & [1] 27767 # Our job is in the jobs table $ jobs [1]+ Running nohup sleep 60 & # And this is the process we started $ ps -p 27767 PID TTY TIME CMD 27767 pts/1 00:00:00 sleep $ exit # and start a new session # Now jobs returns nothing because the jobs table is empty $ jobs # But our process is still alive and kicking... $ ps -p 27767 PID TTY TIME CMD 27767 pts/1 00:00:00 sleep # Until we decide to kill it $ kill 27767 # Now the process is gone $ ps -p 27767 PID TTY TIME CMD 

您可以监视如果仍在使用的过程

ps -p <pid> ,其中是使用nohup命令后得到的进程的ID。

如果你看到有效的条目你可能还活着。

您可以使用ps -u "$USER"ps -u "$(whoami)"在当前用户下运行的进程的列表。

尝试这个 :

 ps -ef | grep <pid>