centos 如何获取使用nohup运行的程序列表

5uzkadbs  于 2022-11-07  发布在  其他
关注(0)|答案(6)|浏览(259)

我正在使用SSH连接访问一个运行CentOS(linux发行版)的服务器。由于我不能总是保持登录状态,我使用“nohup [command] &”来运行我的程序。
我不知道如何获得我使用nohup启动的所有程序的列表。“jobs”只在我注销之前有效。之后,如果我再次登录,jobs命令什么也不显示,但我可以在我的日志文件中看到我的程序仍然在运行。
有没有办法得到我开始使用“nohup”的所有程序的列表?

lrpiutwd

lrpiutwd1#

当我开始使用$ nohup storm dev-zookeper时,

**方法1:**使用jobs

prayagupd@prayagupd:/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &
  • 注意:jobs仅在启动nohup的同一终端会话上显示nohup进程。如果关闭终端会话或尝试新会话,则不会显示nohup进程。首选METHOD2*
    **方法2:**使用ps命令。
$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv]

TTY色谱柱,运行程序? =〉nohup

说明

  • TTY列=与进程关联的终端
  • STAT列=进程的状态
  • S =可中断睡眠(等待事件完成)
  • l =是多线程的(使用CLONE_THREAD,就像NPTL pthreads一样)
    参考资料

$ man ps #然后搜索

f8rj6qna

f8rj6qna2#

你应该使用screen而不是nohup。它达到了同样的结果-你的命令正在“分离”地运行。然而,你可以恢复屏幕会话,回到他们的“隐藏”终端,并看到该终端内部的最新进展。
screen有很多选项,我最常用的是:
要启动第一个屏幕会话或接管最近断开的会话:

screen -Rd

要从当前会话分离:Ctrl+ACtrl+D组合键
您也可以启动多个屏幕-阅读文档。

gcxthw6b

gcxthw6b3#

如果你有标准的输出重定向到“nohup.out”只是看看谁使用这个文件

lsof | grep nohup.out
9wbgstp7

9wbgstp74#

您无法确切地取得以nohup开头的命令清单,但您可以使用命令ps x来查看这些命令以及其他程序。以nohup开头的命令在TTY栏中会有一个问号。

9njqaruj

9njqaruj5#

您也可以只使用top命令,您的用户ID将指示正在运行的作业及其时间。
$ top -U [user ID]
(this将显示所有正在运行的作业)
$ top -U [user ID]
(This将显示特定于该用户ID的作业)

qco9c6ql

qco9c6ql6#

sudo lsof | grep nohup.out | awk '{print $2}' | sort -u | while read i; do ps -o args= $i; done

返回使用nohup.out文件的所有进程

相关问题