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