75 lines
1.7 KiB
Bash
75 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# 设置变量
|
|
KHDN_PROCESS="/usr/local/bin/khdn"
|
|
MONITOR_SCRIPT="/usr/local/bin/monitor_khdn.sh"
|
|
LOG_FILE="/var/log/khdn_monitor.log"
|
|
|
|
# 停止正在运行的 KHDN 进程
|
|
if pgrep -f "$KHDN_PROCESS" > /dev/null; then
|
|
echo "Stopping existing KHDN process..."
|
|
pkill -f "$KHDN_PROCESS"
|
|
fi
|
|
|
|
sleep 3
|
|
# 下载 khd 程序
|
|
mkdir -p /usr/local/bin/
|
|
curl https://git.uauu.net/coolsd/khd/raw/branch/main/newkhd04 -o /usr/local/bin/khdn
|
|
|
|
# 检查是否以 root 权限运行
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "请以 root 权限运行此脚本"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
# 创建监控脚本
|
|
cat > "$MONITOR_SCRIPT" << EOL
|
|
#!/bin/bash
|
|
|
|
KHDN_PROCESS="$KHDN_PROCESS"
|
|
LOG_FILE="$LOG_FILE"
|
|
|
|
log() {
|
|
echo "\$(date): \$1" >> "\$LOG_FILE"
|
|
}
|
|
|
|
start_khdn() {
|
|
if ! pgrep -f "\$KHDN_PROCESS" > /dev/null; then
|
|
log "Starting KHDN process"
|
|
\$KHDN_PROCESS &
|
|
fi
|
|
}
|
|
|
|
while true; do
|
|
start_khdn
|
|
sleep 60
|
|
done
|
|
EOL
|
|
|
|
# 设置监控脚本的执行权限
|
|
chmod +x "$MONITOR_SCRIPT"
|
|
chmod +x $KHDN_PROCESS
|
|
|
|
# 创建日志文件并设置权限
|
|
touch "$LOG_FILE"
|
|
chmod 644 "$LOG_FILE"
|
|
|
|
# 添加 crontab 条目
|
|
# (crontab -l 2>/dev/null; echo "@reboot $MONITOR_SCRIPT &") | crontab -
|
|
# (crontab -l 2>/dev/null; echo "*/5 * * * * $MONITOR_SCRIPT &") | crontab -
|
|
# 删除已有的监控脚本条目
|
|
# 删除已有的监控脚本条目
|
|
crontab -l | grep -v -F "$MONITOR_SCRIPT" | crontab -
|
|
|
|
# 添加 crontab 条目(一次性添加两个条目)
|
|
(crontab -l 2>/dev/null; echo "@reboot $MONITOR_SCRIPT &"; echo "*/5 * * * * $MONITOR_SCRIPT &") | crontab -
|
|
|
|
|
|
echo "监控脚本已创建:$MONITOR_SCRIPT"
|
|
echo "日志文件位置:$LOG_FILE"
|
|
echo "Crontab 条目已添加"
|
|
echo "请确保 $KHDN_PROCESS 存在并具有执行权限"
|
|
echo "设置完成!" |