| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/bin/bash
- # 确保以 root 权限运行,以便终止所有进程
- if [ "$EUID" -ne 0 ]; then
- echo "错误:请使用 sudo 权限运行此脚本。 (例如:sudo ./stop_services.sh)"
- exit 1
- fi
- echo "开始执行停止脚本..."
- # 1. 停止 'videoSurveillance' 进程
- # 使用 pkill -f 匹配包含 "videoSurveillance" 的完整进程名
- echo "---"
- echo "1. 正在尝试停止 'videoSurveillance' 进程..."
- if pkill -f "videoSurveillance"; then
- echo " 已发送终止信号到 'videoSurveillance'。"
- else
- echo " 未找到 'videoSurveillance' 进程。"
- fi
- # 2. 停止占用 5060 端口的进程
- echo "---"
- echo "2. 正在尝试停止占用 5060 端口的进程..."
- # lsof -t -i:5060 ( -t 仅输出 PID, -i:5060 查找使用该端口的)
- PID_5060=$(lsof -t -i:5060)
- if [ -n "$PID_5060" ]; then
- echo " 找到占用 5060 端口的进程 PID: $PID_5060。正在强制终止..."
- # -9 是 SIGKILL 信号 (强制终止)
- kill -9 $PID_5060
- echo " 已终止 PID: $PID_5060。"
- else
- echo " 未找到占用 5060 端口的进程。"
- fi
- # 3. 停止占用 10001 端口的 'scp-config' 进程
- echo "---"
- echo "3. 正在尝试停止占用 10001 端口的 'scp-config' 进程..."
- FOUND_10001=false
- # 查找所有使用 10001 端口的 PID
- PIDS_10001=$(lsof -t -i:10001)
- if [ -n "$PIDS_10001" ]; then
- for pid in $PIDS_10001; do
- # 获取该 PID 的完整命令行
- PNAME=$(ps -p $pid -o args=)
- # 检查命令行是否包含 "scp-config"
- if echo "$PNAME" | grep -q "scp-config"; then
- echo " 找到匹配进程: PID $pid (名称 '$PNAME') 正在使用端口 10001。"
- kill -9 $pid
- echo " 已终止 PID: $pid。"
- FOUND_10001=true
- fi
- done
- fi
- if [ "$FOUND_10001" = false ]; then
- echo " 未找到名为 'scp-config' 且占用 10001 端口的进程。"
- fi
- echo "---"
- echo "脚本执行完毕。"
|