【问题标题】:kill the searchd sphinx process from php从 php 中杀死 searchd sphinx 进程
【发布时间】:2013-12-02 11:23:49
【问题描述】:

我无法从 php 文件中杀死 Linux/Centos 中的 searchd 进程,但是我可以直接从 ssh 执行此操作

 public function doStop()
    { 

    $command = '/usr/bin/killall -9 searchd';

     exec($command);   
        return $this;
    } 

【问题讨论】:

  • 您在哪个用户下运行您的 PHP 脚本以及您在哪个用户下从 shell 运行命令?
  • 你到底为什么希望php有能力杀死一个不是php子进程的进程? (你可以这样做,只是如果 php 和 searchd 以不同的用户身份运行,则默认情况下它们是不同的用户)。应该使用 supervisord/upstart/start-stop-daemon 管理守护进程,而不是通过从可能是公共的网络服务器上的 php 脚本发送信号
  • 我都在同一个用户下运行,而且 php 正在执行多个进程,除非 kill 另外如果我想通过 php 杀死进程,你建议什么??
  • killall -9 - 即 SIGKILL 也绝对是关闭 sphinx 的错误方式。如果所有其他方法都失败了,这是最后的手段,而且通常只能从 root 开始。您应该将 SIGTERM(15) 发送到 pid 文件中列出的 single 搜索进程。 searchd --stop 是一个很好的捷径(即 searchd 将查找正确的进程并向其发送信号)
  • 我检查了laptopli帐户下的php文件,但是该进程是由root运行的,所以我如何从php文件中杀死root运行的进程?可以这样做吗?

标签: php sphinx centos6


【解决方案1】:

我使用 C++ 包装文件来执行命令 现在可以正常使用了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多