30 lines
742 B
Bash
30 lines
742 B
Bash
#!/bin/bash
|
|
|
|
# 安全停止函数(精确匹配进程名)
|
|
safe_kill() {
|
|
local process_names=("xjar" "mazongjian-server.xjar" "mazongjian-server.jar")
|
|
local found=0
|
|
|
|
for name in "${process_names[@]}"; do
|
|
# 使用数组来存储所有匹配的PID
|
|
pids=($(pgrep -f "$name"))
|
|
if [ ${#pids[@]} -gt 0 ]; then
|
|
found=1
|
|
echo "停止进程: $name (PIDs: ${pids[@]})"
|
|
# 逐个杀死进程
|
|
for pid in "${pids[@]}"; do
|
|
kill -9 "$pid"
|
|
done
|
|
fi
|
|
done
|
|
|
|
if [ "$found" -eq 0 ]; then
|
|
echo "未找到运行中的服务进程,无需停止"
|
|
else
|
|
echo "所有服务进程已停止"
|
|
fi
|
|
}
|
|
|
|
# 主流程
|
|
safe_kill
|