Upload 32 files
Browse files- src/server.sh +28 -7
src/server.sh
CHANGED
|
@@ -46,16 +46,37 @@ if [[ "${WEB:-}" != [Nn]* ]]; then
|
|
| 46 |
fi
|
| 47 |
|
| 48 |
# Start webserver
|
| 49 |
-
#
|
|
|
|
| 50 |
mkdir -p /run /run/shm
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
| 55 |
touch "$PID_FILE" 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
fi
|
| 57 |
-
info "Starting nginx with pid file: $PID_FILE"
|
| 58 |
-
nginx -g "pid $PID_FILE;" -e stderr
|
| 59 |
|
| 60 |
# Start websocket server — write logs to /run/shm (writable in non-root mode)
|
| 61 |
mkdir -p /run/shm
|
|
|
|
| 46 |
fi
|
| 47 |
|
| 48 |
# Start webserver
|
| 49 |
+
# Prefer using pid directive from /etc/nginx/nginx.conf if present to avoid
|
| 50 |
+
# duplicate-pid errors when passing -g. Otherwise fall back to passing -g.
|
| 51 |
mkdir -p /run /run/shm
|
| 52 |
+
CONF_PID=$(sed -n 's/^[[:space:]]*pid[[:space:]]\+\([^;]*\);.*/\1/p' /etc/nginx/nginx.conf 2>/dev/null | tr -d '"' | head -n1 || true)
|
| 53 |
+
|
| 54 |
+
if [ -n "$CONF_PID" ]; then
|
| 55 |
+
PID_FILE="$CONF_PID"
|
| 56 |
+
mkdir -p "$(dirname "$PID_FILE")" 2>/dev/null || true
|
| 57 |
touch "$PID_FILE" 2>/dev/null || true
|
| 58 |
+
if [ -w "$PID_FILE" ] 2>/dev/null; then
|
| 59 |
+
info "Starting nginx (using pid from config): $PID_FILE"
|
| 60 |
+
nginx -e stderr
|
| 61 |
+
else
|
| 62 |
+
# If we can't write the config-specified pid, try to create a fallback
|
| 63 |
+
PID_FILE="/run/shm/nginx.pid"
|
| 64 |
+
mkdir -p "$(dirname "$PID_FILE")" 2>/dev/null || true
|
| 65 |
+
touch "$PID_FILE" 2>/dev/null || true
|
| 66 |
+
info "Config pid $CONF_PID not writable, starting nginx with fallback pid: $PID_FILE"
|
| 67 |
+
nginx -g "pid $PID_FILE;" -e stderr
|
| 68 |
+
fi
|
| 69 |
+
else
|
| 70 |
+
# No pid directive in config: use runtime-chosen pid file
|
| 71 |
+
PID_FILE="/run/nginx.pid"
|
| 72 |
+
if ! touch "$PID_FILE" 2>/dev/null || [ ! -w "$PID_FILE" ] 2>/dev/null; then
|
| 73 |
+
PID_FILE="/run/shm/nginx.pid"
|
| 74 |
+
mkdir -p "$(dirname "$PID_FILE")" 2>/dev/null || true
|
| 75 |
+
touch "$PID_FILE" 2>/dev/null || true
|
| 76 |
+
fi
|
| 77 |
+
info "Starting nginx with pid file: $PID_FILE"
|
| 78 |
+
nginx -g "pid $PID_FILE;" -e stderr
|
| 79 |
fi
|
|
|
|
|
|
|
| 80 |
|
| 81 |
# Start websocket server — write logs to /run/shm (writable in non-root mode)
|
| 82 |
mkdir -p /run/shm
|