+13
-3
@@ -16,7 +16,7 @@ INSTALL_ROOT="${INSTALL_ROOT:-/opt/hypernode}"
|
||||
DATA_DIR="${DATA_DIR:-/var/lib/hypernode}"
|
||||
GIT_URL="${GIT_URL:-https://git.bz121.com/dekun/HyperNode-AI.git}"
|
||||
GIT_BRANCH="${GIT_BRANCH:-main}"
|
||||
APP_USER="hypernode"
|
||||
APP_USER="root"
|
||||
SERVICE_NAME="hypernode"
|
||||
BIND_HOST="0.0.0.0"
|
||||
BIND_PORT="33333"
|
||||
@@ -108,6 +108,9 @@ install_packages() {
|
||||
}
|
||||
|
||||
ensure_user() {
|
||||
if [[ "${APP_USER}" == "root" ]]; then
|
||||
return 0
|
||||
fi
|
||||
if ! id -u "${APP_USER}" >/dev/null 2>&1; then
|
||||
useradd --system --home-dir "${INSTALL_ROOT}" --shell /usr/sbin/nologin "${APP_USER}"
|
||||
fi
|
||||
@@ -223,7 +226,11 @@ wait_until_ready() {
|
||||
|
||||
verify_app() {
|
||||
log "检查程序能否启动"
|
||||
if ! /usr/sbin/runuser -u "${APP_USER}" -- bash -c "cd '${INSTALL_ROOT}' && exec '${INSTALL_ROOT}/.venv/bin/python' -c 'import app.main'"; then
|
||||
local runner=(bash -c "cd '${INSTALL_ROOT}' && exec '${INSTALL_ROOT}/.venv/bin/python' -c 'import app.main'")
|
||||
if [[ "${APP_USER}" != "root" ]]; then
|
||||
runner=(/usr/sbin/runuser -u "${APP_USER}" -- "${runner[@]}")
|
||||
fi
|
||||
if ! "${runner[@]}"; then
|
||||
echo "程序导入失败,没有重启服务。请把上面的报错发出来。" >&2
|
||||
return 1
|
||||
fi
|
||||
@@ -307,9 +314,12 @@ cmd_uninstall() {
|
||||
echo "数据库已保留在 ${DATA_DIR}"
|
||||
fi
|
||||
|
||||
if id -u "${APP_USER}" >/dev/null 2>&1; then
|
||||
if [[ "${APP_USER}" != "root" ]] && id -u "${APP_USER}" >/dev/null 2>&1; then
|
||||
userdel "${APP_USER}" || echo "系统用户 ${APP_USER} 未删除,可稍后执行 userdel ${APP_USER}"
|
||||
fi
|
||||
if id -u hypernode >/dev/null 2>&1; then
|
||||
userdel hypernode >/dev/null 2>&1 || true
|
||||
fi
|
||||
log "卸载完成"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user