khd/khd.sh
2024-09-22 11:06:23 +08:00

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 "设置完成!"