10

我使用以下命令在 Centos 中运行服务器可执行文件"nohup server &"。现在我需要终止进程"server"。但是我尝试"ps -a"了命令来获取PID但我无法获取该过程。现在怎么杀了"server"现在?

4

4 回答 4

19

ps auxwww|grep -i 'server'应该返回其中包含的所有进程server。否则,服务器可能已经停止。

您应该能够确定 PID(并将其存储在文件中),如下所示:

nohup server &
print $! >> my_server.pid
于 2013-01-04T06:11:29.413 回答
15

如果创建了 nohup.out 文件,您可以在 bash 中运行:

# lsof nohup.out

它将返回创建/正在运行文件的 pid

最好的祝福!

于 2014-08-20T15:44:20.317 回答
5

没有明确的方法可以在ps命令的帮助下捕获确切的过程,但您可以使用以下命令:

ps -a | grep "server"

您将获得以“服务器”名称运行的所有进程的列表

或者,您也可以使用任何其他关键字来 grep ps 输出。

于 2013-01-04T07:09:15.160 回答
1

在 centos 中启动服务器的最佳方式是使用 service 命令。

所以 service httpd start

您可能希望将程序编写为守护进程

守护程序(或服务)是一个后台进程,旨在自主运行,几乎不需要用户干预。Apache Web 服务器 http 守护程序 (httpd) 就是这样的守护程序示例之一。它在后台等待侦听特定端口,并根据请求的类型提供页面或处理脚本。

http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

于 2013-01-04T06:09:36.420 回答