【问题标题】:Find the Process run by nohup command查找 nohup 命令运行的进程
【发布时间】:2012-12-18 14:00:41
【问题描述】:

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

【问题讨论】:

  • ps auxwww|grep -i 'server' 应该返回所有包含 'server' 的进程。否则,服务器可能已经停止。
  • @Usman saleem 谢谢这解决了我的问题。我还有一个疑问“nohup server &”是正确的命令,即使我关闭终端也能运行进程背景?
  • @Mikhail 谢谢这解决了我的答案。我还有一个疑问“nohup server &”是正确的命令,即使我关闭终端也可以运行进程后台?
  • 是的,您可以在调用命令时确定正确的 PID:'nohup server &' 后跟 'print $! >> server_pid_file'
  • 是的,使用 nohup 命令意味着您的“服务器”进程将丢弃操作系统在您关闭终端时发送的“HUP”中断。它还将丢弃“kill -HUP pid”或“kill -1 pid”。

标签: linux process background ps nohup


【解决方案1】:

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

您应该能够按如下方式确定 PID(并将其存储在文件中):

nohup server &
print $! >> my_server.pid

【讨论】:

    【解决方案2】:

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

    # lsof nohup.out
    

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

    最好的问候!

    【讨论】:

      【解决方案3】:

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

      ps -a | grep "server"
      

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

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

      【讨论】:

        【解决方案4】:

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

        所以 service httpd start

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

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

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

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2011-07-14
        • 2015-07-21
        相关资源
        最近更新 更多