Spaces:
Paused
Paused
| 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 | |