diff --git a/stop_webman_commands.php b/stop_webman_commands.php new file mode 100644 index 0000000..f70f765 --- /dev/null +++ b/stop_webman_commands.php @@ -0,0 +1,57 @@ + $keyword) { + $processNum = $index + 1; + echo "处理进程 {$processNum}:关键词 = {$keyword}\n"; + + // 1. 查找包含关键词的进程 ID(PID) + // 命令说明: + // - ps aux:列出所有进程 + // - grep "{$keyword}":筛选包含关键词的进程 + // - grep -v grep:排除 grep 自身进程 + // - awk '{print $2}':提取 PID(第 2 列) + $cmd = "ps aux | grep '{$keyword}' | grep -v grep | awk '{print $2}'"; + exec($cmd, $pids); // 执行命令并获取所有匹配的 PID + + if (empty($pids)) { + echo "未找到进程:{$keyword}\n"; + echo "----------------------------------------\n"; + continue; + } + + // 2. 逐个杀死进程 + foreach ($pids as $pid) { + $pid = trim($pid); + if (is_numeric($pid)) { + // 先尝试正常终止(SIGTERM),失败则强制终止(SIGKILL) + $killResult = exec("kill {$pid}"); + if ($killResult === '') { + echo "成功终止进程 PID={$pid}\n"; + } else { + // 正常终止失败,强制杀死 + exec("kill -9 {$pid}"); + echo "强制终止进程 PID={$pid}\n"; + } + } + } + + echo "----------------------------------------\n"; +} + +echo "所有进程处理完毕!\n"; +echo "可通过 'ps aux | grep webman' 确认是否已终止。\n";