Php 中是否可以检查可执行文件是否正在运行,
一些伪代码:
if(processExists("notepad.exe")
{
echo "exists";
}
{
echo "doesn't exists";
}
您只能检查运行 PHP 的服务器端进程。出于安全考虑,JavaScript(客户端)不允许进行此类访问。
我了解您正在使用 cli 或想要检查服务器端进程。
对于特定于 Windows 的解决方案,您可以使用适当的选项执行 shell 命令
tasklist
(请参阅 tasklist /?
)。在基于 Unix 的系统上,您可以使用 ps
。
要在 PHP 下执行 shell 命令,可以使用 shell_exec() 或 exec()。
警告:请勿在这些命令中输入未经清理的用户输入。
这是使用 PHP 检查进程是否在 Windows 上运行的简单方法:
exec("tasklist 2>NUL", $task_list);
//print_r($task_list);
foreach ($task_list as $task) {
if (strpos($task, 'MSWC.exe') !== false) { echo " MSWC.exe is running "; }
}
对于 Linux,您可以使用:
exec("pgrep lighttpd", $pids);
if(empty($pids)) {
// lighttpd is not running!
}