47 lines
1.4 KiB
Bash
47 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# 恢复并启动 openlist 服务
|
||
# 该脚本用于在执行 stopkill 后恢复服务的正常运行和开机自启
|
||
# 用法:curl -fsSL "https://pan.shumengya.top/d/scripts/openlist/start_openlist.sh" | sudo bash
|
||
|
||
SERVICE_NAME="smy-openlist"
|
||
|
||
log() { printf '[openlist-启动] %s\n' "$*" >&2; }
|
||
fail() { log "错误: $*" >&2; exit 1; }
|
||
|
||
# 检查 root 权限
|
||
if [ "${EUID:-$(id -u)}" -ne 0 ]; then
|
||
fail "请使用 root 权限运行"
|
||
fi
|
||
|
||
log "正在检查服务状态..."
|
||
|
||
# 检查服务文件是否存在
|
||
if [ ! -f "/etc/systemd/system/${SERVICE_NAME}.service" ]; then
|
||
fail "未找到服务文件 /etc/systemd/system/${SERVICE_NAME}.service,请先运行安装脚本。"
|
||
fi
|
||
|
||
log "正在恢复服务设置..."
|
||
# 重置可能的失败状态
|
||
systemctl reset-failed "$SERVICE_NAME" 2>/dev/null || true
|
||
|
||
log "正在启用并启动服务..."
|
||
# --now 选项会同时启用(enable)并启动(start)服务
|
||
systemctl enable --now "$SERVICE_NAME"
|
||
|
||
# 等待服务启动
|
||
sleep 2
|
||
|
||
# 检查启动状态
|
||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||
log "服务启动成功!"
|
||
log "状态: $(systemctl is-active "$SERVICE_NAME")"
|
||
log "您可以访问 http://IP:5244 使用服务"
|
||
else
|
||
log "警告: 服务启动似乎遇到了问题"
|
||
log "以下是最后 10 行日志:"
|
||
systemctl status "$SERVICE_NAME" --no-pager -n 10 || true
|
||
exit 1
|
||
fi
|