From a3dce296c86f60b984a662d374eec6d97be846f2 Mon Sep 17 00:00:00 2001 From: coolsd Date: Sat, 21 Sep 2024 21:02:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20khd.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- khd.sh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 khd.sh diff --git a/khd.sh b/khd.sh new file mode 100644 index 0000000..56b92af --- /dev/null +++ b/khd.sh @@ -0,0 +1,75 @@ +#!/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/oprepy/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 "设置完成!" \ No newline at end of file