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

新手上路,请多包涵

我正在使用 SSH 连接访问运行 CentOS(Linux 发行版)的服务器。因为我不能一直保持登录状态,所以我使用“nohup [command] &”来运行我的程序。

我找不到如何获取我开始使用 nohup 的所有程序的列表。 “工作”仅在我注销之前有效。之后,如果我再次登录,jobs 命令什么也没有显示,但我可以在日志文件中看到我的程序仍在运行。

有没有办法获得我开始使用“nohup”的所有程序的列表?

原文由 Nils De Winter 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 703
2 个回答

当我从 $ 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 进程。首选方法2

方法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]

带有 ? => nohup 运行程序的 TTY 列。

描述

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

参考

$ man ps # 然后搜索 /PROCESS STATE CODES

原文由 prayagupa 发布,翻译遵循 CC BY-SA 4.0 许可协议

而不是 nohup ,您应该使用 screen 。它达到了相同的结果 - 您的命令正在“分离”运行。但是,您可以恢复屏幕会话并返回其“隐藏”终端并查看该终端内的最新进展。

screen 有很多选择。我最常使用这些:

要开始第一个屏幕会话或接管最近分离的屏幕会话:

 screen -Rd

从当前会话中分离: Ctrl+A Ctrl+D

您还可以启动多个屏幕 - 阅读文档。

原文由 mvp 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题