【发布时间】: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 执行该脚本。