#!/usr/bin/env bash # 把 deploy/socks-manager.service 同步到生产机并重启。 # # 使用: 在生产机 /opt/socks-manager 下执行 # bash deploy/install.sh # # 假定: 仓库已 git pull 到最新,当前在 /opt/socks-manager 工作目录下。 set -euo pipefail SERVICE_FILE="deploy/socks-manager.service" DEST="/etc/systemd/system/socks-manager.service" if [[ ! -f "$SERVICE_FILE" ]]; then echo "ERROR: $SERVICE_FILE not found. Run from /opt/socks-manager." >&2 exit 1 fi echo "[1/5] install unit -> $DEST" install -m 0644 "$SERVICE_FILE" "$DEST" echo "[2/5] daemon-reload" systemctl daemon-reload echo "[3/5] enable (开机自启)" systemctl enable socks-manager.service echo "[4/5] restart" systemctl restart socks-manager.service echo "[5/5] wait for active (max 15s)" for i in $(seq 1 15); do if systemctl is-active --quiet socks-manager.service; then echo "active after ${i}s" systemctl status socks-manager.service --no-pager | head -15 exit 0 fi sleep 1 done echo "ERROR: service did not become active in 15s" >&2 journalctl -u socks-manager.service -n 80 --no-pager >&2 exit 1