轻量级服务器启动脚本的设计与实现

因为我在日常的要进行服务器维护,包括公司自己的服务器还有客户的服务器,为了提升效率和便捷性,考虑到我们团队的规模和需求,并不需要依赖于那些庞大而复杂的专业软件。相反,我选择自己动手编写一个轻量级的脚本,以满足我们的特定需求。

#!/bin/bash

# 定义脚本文件名、日志文件路径和PID文件路径
SCRIPT_NAME="bot.py"
LOG_FILE="run_bot.log"
PID_FILE="bot_pid.txt"

# 查找进程ID
sp_pid=$(ps -ef | grep "$SCRIPT_NAME" | grep -v grep | awk '{print $2}')

# 检查进程ID是否存在
if [ -z "$sp_pid" ]; then
    echo "[ not find $SCRIPT_NAME ]"
else
    echo "find result: $sp_pid"
    kill -9 $sp_pid
    if [ $? -eq 0 ]; then
        echo "Successfully killed process $sp_pid"
    else
        echo "Failed to kill process $sp_pid"
        exit 1
    fi
fi

# 重新启动脚本
nohup python3 -u "$SCRIPT_NAME" > "$LOG_FILE" 2>&1 &

# 检查脚本是否成功启动
if [ $? -eq 0 ]; then
    echo "$SCRIPT_NAME started successfully"
    echo $! > "$PID_FILE"
    echo "New PID $! written to $PID_FILE"
else
    echo "Failed to start $SCRIPT_NAME"
    exit 1
fi