This commit is contained in:
parent
f55b876aa6
commit
f5afc6d3f3
|
|
@ -0,0 +1,57 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* 终止 Webman 相关进程的脚本
|
||||||
|
* 功能:根据进程名关键词杀死指定的 Webman 进程
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 定义需要终止的进程关键词(与启动命令对应)
|
||||||
|
$processKeywords = [
|
||||||
|
'webman applysmstemp',
|
||||||
|
'webman birthdaygiftsms',
|
||||||
|
'webman rabborderprint',
|
||||||
|
'webman rabbproductupdate'
|
||||||
|
];
|
||||||
|
|
||||||
|
echo "开始终止 Webman 进程...\n";
|
||||||
|
echo "----------------------------------------\n";
|
||||||
|
|
||||||
|
foreach ($processKeywords as $index => $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";
|
||||||
Loading…
Reference in New Issue