Spaces:
Paused
Paused
File size: 1,362 Bytes
dbe3386 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/usr/bin/env bash
set -euo pipefail
SERVICE_NAME="com.chatgpt-register.web"
PLIST_PATH="${HOME}/Library/LaunchAgents/${SERVICE_NAME}.plist"
GUI_DOMAIN="gui/$(id -u)"
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
LOG_DIR="${PROJECT_DIR}/logs"
usage() {
echo "用法: $0 {start|stop|restart|status|logs|uninstall}"
}
cmd="${1:-}"
case "${cmd}" in
start)
launchctl bootstrap "${GUI_DOMAIN}" "${PLIST_PATH}" 2>/dev/null || true
launchctl enable "${GUI_DOMAIN}/${SERVICE_NAME}" 2>/dev/null || true
launchctl kickstart -k "${GUI_DOMAIN}/${SERVICE_NAME}"
;;
stop)
launchctl bootout "${GUI_DOMAIN}" "${PLIST_PATH}"
;;
restart)
launchctl bootout "${GUI_DOMAIN}" "${PLIST_PATH}" 2>/dev/null || true
launchctl bootstrap "${GUI_DOMAIN}" "${PLIST_PATH}"
launchctl enable "${GUI_DOMAIN}/${SERVICE_NAME}"
launchctl kickstart -k "${GUI_DOMAIN}/${SERVICE_NAME}"
;;
status)
launchctl print "${GUI_DOMAIN}/${SERVICE_NAME}"
;;
logs)
mkdir -p "${LOG_DIR}"
touch "${LOG_DIR}/web.stdout.log" "${LOG_DIR}/web.stderr.log"
tail -f "${LOG_DIR}/web.stdout.log" "${LOG_DIR}/web.stderr.log"
;;
uninstall)
launchctl bootout "${GUI_DOMAIN}" "${PLIST_PATH}" 2>/dev/null || true
rm -f "${PLIST_PATH}"
echo "已卸载 ${SERVICE_NAME}"
;;
*)
usage
exit 1
;;
esac
|