mirror of
https://github.com/whyour/qinglong.git
synced 2025-11-23 00:49:19 +08:00
* Initial plan * Add fallback mechanism for PM2 startup failures on incompatible hardware Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
export PATH="$HOME/bin:$PATH"
|
|
|
|
dir_shell=/ql/shell
|
|
. $dir_shell/share.sh
|
|
|
|
export_ql_envs() {
|
|
export BACK_PORT="${ql_port}"
|
|
export GRPC_PORT="${ql_grpc_port}"
|
|
}
|
|
|
|
log_with_style() {
|
|
local level="$1"
|
|
local message="$2"
|
|
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
|
printf "\n[%s] [%7s] %s\n" "${timestamp}" "${level}" "${message}"
|
|
}
|
|
|
|
# Fix DNS resolution issues in Alpine Linux
|
|
# Alpine uses musl libc which has known DNS resolver issues with certain domains
|
|
# Adding ndots:0 prevents unnecessary search domain appending
|
|
if [ -f /etc/alpine-release ]; then
|
|
if ! grep -q "^options ndots:0" /etc/resolv.conf 2>/dev/null; then
|
|
echo "options ndots:0" >> /etc/resolv.conf
|
|
log_with_style "INFO" "🔧 已配置 DNS 解析优化 (ndots:0)"
|
|
fi
|
|
fi
|
|
|
|
log_with_style "INFO" "🚀 1. 检测配置文件..."
|
|
load_ql_envs
|
|
export_ql_envs
|
|
. $dir_shell/env.sh
|
|
import_config "$@"
|
|
fix_config
|
|
|
|
# Try to initialize PM2, but don't fail if it doesn't work
|
|
pm2 l &>/dev/null || log_with_style "WARN" "PM2 初始化可能失败,将在启动时尝试使用备用方案"
|
|
|
|
log_with_style "INFO" "⚙️ 2. 启动 pm2 服务..."
|
|
reload_pm2
|
|
|
|
if [[ $AutoStartBot == true ]]; then
|
|
log_with_style "INFO" "🤖 3. 启动 bot..."
|
|
nohup ql bot >$dir_log/bot.log 2>&1 &
|
|
fi
|
|
|
|
if [[ $EnableExtraShell == true ]]; then
|
|
log_with_style "INFO" "🛠️ 4. 执行自定义脚本..."
|
|
nohup ql extra >$dir_log/extra.log 2>&1 &
|
|
fi
|
|
|
|
log_with_style "SUCCESS" "🎉 容器启动成功!"
|
|
|
|
crond -f >/dev/null
|
|
|
|
exec "$@"
|