| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env bash
- #kill `cat gate_server.pid*`
- #kill `cat game_server.pid*`
- #kill `cat db_server.pid*`
- #!/bin/sh
- #date=$(date +%Y%m%d-%H:%M:%S)
- #echo "time=$date"
- #mkdir -p /redis-backup
- #redis-cli save
- #cp /www/server/redis/dump.rdb /redis-backup/dump-$date.rdb
- quit=1
- index=0
- function iterator_dir() {
- local dir="$1"
- for element in "$dir"/*; do
- # 检查文件名是否包含 "pid"(不区分大小写)
- if [[ "$element" =~ [pP][iI][dD] ]]; then
- echo "Found PID file: $element"
-
- # 读取 PID,并去除空格/换行符
- pidValue=$(cat "$element" 2>/dev/null | tr -d '[:space:]')
- # 检查是否是有效数字
- if [[ ! "$pidValue" =~ ^[0-9]+$ ]]; then
- echo "Error: $element does not contain a valid PID (got: '$pidValue')"
- continue
- fi
- # 检查进程是否存在
- if ps -p "$pidValue" >/dev/null 2>&1; then
- echo "Killing process $pidValue..."
- # 先尝试 SIGTERM(优雅终止)
- kill "$pidValue" 2>/dev/null
- sleep 1 # 等待进程处理终止信号
- # 检查是否仍然存活,如果是,则强制 SIGKILL
- if ps -p "$pidValue" >/dev/null 2>&1; then
- echo "Process $pidValue still running, sending SIGKILL..."
- kill -9 "$pidValue" 2>/dev/null
- fi
- ((index++))
- else
- echo "Process $pidValue does not exist."
- fi
- else
- quit=0
- fi
- done
- }
- iterator_dir .
|