$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";