| #!/bin/sh /etc/rc.common |
| # Copyright (C) 2015 OpenWrt.org |
| |
| START=80 |
| |
| USE_PROCD=1 |
| |
| G_OPTS="daemon off;" |
| |
| NGINX_UTIL="/usr/bin/nginx-util" |
| |
| eval $("${NGINX_UTIL}" get_env) |
| |
| CONF="" |
| |
| |
| nginx_init() { |
| [ -z "${CONF}" ] || return # already called. |
| |
| [ -d /var/log/nginx ] || mkdir -p /var/log/nginx |
| [ -d /var/lib/nginx ] || mkdir -p /var/lib/nginx |
| |
| rm -f "$(readlink "${UCI_CONF}")" |
| ${NGINX_UTIL} init_lan |
| |
| if [ -e "${UCI_CONF}" ] |
| then CONF="${UCI_CONF}" |
| else CONF="${NGINX_CONF}" |
| fi |
| |
| local message |
| message="$(/usr/sbin/nginx -t -c "${CONF}" -g "${G_OPTS}" 2>&1)" || |
| { |
| echo -e "${message}" | logger -t "nginx_init" -p "daemon.err" |
| logger -s -t "nginx_init" -p "daemon.err" "NOT using conf file!" |
| echo "show config to be used by: nginx -T -c '${CONF}'" >&2 |
| exit 1 |
| } |
| |
| logger -t "nginx_init" -p "daemon.info" "using ${CONF} (the test is ok)" |
| } |
| |
| |
| start_service() { |
| nginx_init |
| |
| procd_open_instance |
| procd_set_param command /usr/sbin/nginx -c "${CONF}" -g "${G_OPTS}" |
| procd_set_param stdout 1 |
| procd_set_param stderr 1 |
| procd_set_param file "${CONF}" "${CONF_DIR}*.crt" "${CONF_DIR}*.key" \ |
| "${CONF_DIR}*.conf" "${CONF_DIR}*.locations" |
| procd_set_param respawn |
| procd_close_instance |
| } |
| |
| |
| reload_service() { |
| nginx_init |
| |
| if [ "$(cat "/proc/$(cat "/var/run/nginx.pid")/cmdline")" = \ |
| "nginx: master process /usr/sbin/nginx -c ${CONF} -g ${G_OPTS}" ] |
| then procd_send_signal nginx |
| else restart |
| fi |
| } |
| |
| |
| extra_command "relog" "Reopen log files (without reloading)" |
| relog() { |
| [ -d /var/log/nginx ] || mkdir -p /var/log/nginx |
| procd_send_signal nginx '*' USR1 |
| } |