【问题标题】:Sending signals to a process opened by proc_open()向 proc_open() 打开的进程发送信号
【发布时间】:2014-05-01 19:06:12
【问题描述】:

我们这里有一个实用程序,它使用proc_open() 调用 ssh 在远程机器上运行命令。但是,在某些情况下,我们需要在远程机器上停止命令,但 proc_close()proc_terminate() 不会导致所需的信号通过 ssh 连接的远端发送。 SSH 终止时一般会向正在运行的程序发出SIGHUP,但我们需要向 ssh 发送SIGINT,它会将其转发给在远程端运行的程序。

我已经尽可能多地在谷歌上搜索,似乎有许多 pcntl 函数用于接收信号,但我找不到任何关于 发送的信息 通过 PHP 发出信号,更不用说与 proc_* 函数相关的任何内容了。

【问题讨论】:

  • 你可以在远程机器上放置一个 shell 脚本来杀死你想要杀死的进程(只需将 PID 传递给脚本,例如 $ myKill.sh -id NNN )。然后通过 php/ssh 执行该脚本。

标签: php signals proc-open


【解决方案1】:

您可以通过 PHP 发送信号:

posix_kill(posix_getpid(), SIGTERM); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2013-07-30
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多