80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
|
|
#!/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"
|