我在 AWS EC2 上有一个 ubuntu 服务器。我可以使用 Putty 和 ssh 从 Windows 7 笔记本电脑访问它。我想在其中一个 ssh 会话期间启动一个进程,并在结束 ssh 会话后让它继续。我认为这可以通过 nohup 来完成。不过,我在一个 ssh 会话上尝试以下命令。
nohup /var/www/Executables/inotifydropboxcopy &
然后我做
ps | grep inotify
我明白了
27554 pts/0 00:00:00 inotifydropboxcopy
但是,当我打开一个新的 ssh 会话时,到同一服务器,然后输入
ps | grep inotify
我什么也没得到。当我结束 ssh 会话并开始另一个会话时,我也什么也得不到。
如何启动在 ssh 会话之间在服务器上继续运行的进程?
编辑:
我进入了屏幕
screen
进入
/var/www/Executables/inotifydropboxcopy &
然后使用 ctrl-ad 从屏幕分离
然后,在初始 ssh 会话上
ps | grep inotify
回
27554 pts/0 00:00:00 inotifydropboxcopy
但是,当我启动一个新的 ssh 会话并输入
ps | grep inotify
我什么也没得到。
答案1
您应该能够看到您的输出ps -ax | grep inotify
。
man ps
a
分别定义了和标志x
。
解除 BSD 风格的“仅你自己”限制,当使用某些 BSD 风格(不带“-”)选项或 ps 个性设置类似于 BSD 时,该限制会强加于所有进程集。以这种方式选择的进程集合是除了通过其他方式选择的进程集合之外的。另一种描述是该选项导致 ps 使用终端 (tty) 列出所有进程,或者与 x 选项一起使用时列出所有进程
解除 BSD 风格的“必须有 tty”限制,当使用某些 BSD 风格(不带“-”)选项或 ps 个性设置类似于 BSD 时,该限制会强加于所有进程集。以这种方式选择的进程集合是除了通过其他方式选择的进程集合之外的。另一种描述是,此选项使 ps 列出您拥有的所有进程(与 ps 相同的 EUID),或者与 a 选项一起使用时列出所有进程。