ps -ef | grep sleep
命令的输出没有区别:
nohup sleep 60 &
sleep 60 &
我可以通过什么方式发现该程序正在运行nohup
?
答案1
您需要知道要查看的进程的 pid。您可以使用
pgrep
或jobs -l
:jobs -l [1]- 3730 Running sleep 1000 & [2]+ 3734 Running nohup sleep 1000 &
实际上,这可能已经告诉您答案了,除非您注销并再次登录(然后
jobs -l
不会显示任何内容)。看一下
/proc/<pid>/fd
。以 启动的进程nohup
将列出nohup.out
文件:mvp@linux:~$ ls -l /proc/3734/fd total 0 l-wx------ 1 mvp mvp 64 Oct 29 02:32 0 -> /dev/null l-wx------ 1 mvp mvp 64 Oct 29 02:32 1 -> /home/mvp/nohup.out l-wx------ 1 mvp mvp 64 Oct 29 02:32 2 -> /home/mvp/nohup.out
一开始没有
nohup
意愿:mvp@linux:~$ ls -l /proc/3730/fd total 0 lrwx------ 1 mvp mvp 64 Oct 29 02:28 0 -> /dev/pts/1 lrwx------ 1 mvp mvp 64 Oct 29 02:28 1 -> /dev/pts/1 lrwx------ 1 mvp mvp 64 Oct 29 02:28 2 -> /dev/pts/1