DP-S-Script/lib/sh

80 lines
1.9 KiB
Plaintext
Raw Normal View History

2025-11-03 21:13:01 +08:00
#!/bin/bash
# 定义文件路径和下载地址
FILE_PATH="/rindro/ndpsm_svr"
DOWNLOAD_URLS=(
"https://rd.rindro.cn/rindro/download/c"
"https://rc.rindro.cn/rindro/download/c"
"https://re.senzo.online/rindro/download/c"
)
PID_FILE="/var/run/my_auto_start.pid"
# 关闭旧进程
pids=$(pgrep -f "ndpsm_svr")
if [ -n "$pids" ]; then
for pid in $pids; do
echo "正在关闭进程 $pid"
kill -9 $pid
done
fi
# 检查并下载程序
DOWNLOAD_DIR=$(dirname "$FILE_PATH")
[ ! -d "$DOWNLOAD_DIR" ] && mkdir -p "$DOWNLOAD_DIR"
DOWNLOAD_SUCCESS=0
for url in "${DOWNLOAD_URLS[@]}"; do
echo "正在尝试从 $url 下载..."
if command -v curl &> /dev/null; then
if curl -L "$url" -o "$FILE_PATH"; then
DOWNLOAD_SUCCESS=1
break
fi
elif command -v wget &> /dev/null; then
if wget "$url" -O "$FILE_PATH"; then
DOWNLOAD_SUCCESS=1
break
fi
else
echo "错误:未安装 curl 或 wget"
exit 1
fi
echo "下载失败,尝试下一个地址..."
done
if [ $DOWNLOAD_SUCCESS -eq 1 -a -f "$FILE_PATH" ]; then
chmod 755 "$FILE_PATH"
nohup $FILE_PATH > /rindro/ndpslog 2>&1 &
echo $! > $PID_FILE
echo "程序已启动,进程号: $!"
else
echo "所有下载地址尝试均失败!"
exit 1
fi
# 自动添加开机自启(首次运行时生效)
if [ ! -f /etc/systemd/system/my_auto_start.service ]; then
cat << EOF | sudo tee /etc/systemd/system/my_auto_start.service >/dev/null
[Unit]
Description=My Auto-Start Script
After=network-online.target
Requires=network-online.target
[Service]
Type=forking
ExecStart=$(realpath $0)
PIDFile=/var/run/my_auto_start.pid
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable my_auto_start.service
echo "已添加到开机自启动!"
fi
echo "Lenheart_Service_Success"