我正在尝试做一些有点风险的事情。它是一个私人脚本,但我想添加一些安全性,所以我不会意外输入无效的PID。
目前,如果脚本挂起,它将锁定它使用的端口,我需要终止PID然后重新启动它。我想为这个脚本添加一个新参数,这样我就可以传入旧的PID,脚本会在重新启动之前终止该PID。使用netstat -tulpen
我看到有一个程序名称绑定到PID。我想确保程序名称是PHP,所以我不会意外关闭不同的进程。例如。检查PID 15498是否由PHP(15498 / php)创建
tcp 0 0 0.0.0.0:1067 0.0.0.0:* LISTEN 0 201425 15498/php
我查看了文件系统,找到了PID的目录,但是该目录中的所有文件都是空的。 /proc/15498
一旦我可以验证这是一个相对安全的PID来杀死我就可以运行命令来杀死它。
exec("kill -SIGKILL 15498");
答案 0 :(得分:3)
从/proc/PID/cmdline
获取命令行,并删除尾随空字节。
$cmd = trim(file_get_contents("/proc/$pid/cmdline"), "\0");
答案 1 :(得分:0)
要使用参数检查进程,请使用以下命令:
$cmd = str_replace("\0", " ", trim(file_get_contents("/proc/$pid/cmdline"), "\0"));
答案 2 :(得分:-1)
您可以使用系统php调用并将其传递给shell命令以查找进程信息,然后您可以使用PID通过grep管道以查找进程名称