2014-12-18 32 views
0

我嘗試使用Nginx與/etc/init.d/nginx start。它的值爲0,否則絕對沒有,因爲/usr/sbin/nginx不存在。Nginx無法啓動。/usr/sbin/nginx和/var/run/nginx.pid不存在

這裏是/etc/init.d/nginx

#!/bin/sh 

### BEGIN INIT INFO 
# Provides:  nginx 
# Required-Start: $local_fs $remote_fs $network $syslog $named 
# Required-Stop:  $local_fs $remote_fs $network $syslog $named 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: starts the nginx web server 
# Description:  starts nginx using start-stop-daemon 
### END INIT INFO 

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
DAEMON=/usr/sbin/nginx 
NAME=nginx 
DESC=nginx 

# Include nginx defaults if available 
if [ -r /etc/default/nginx ]; then 
     . /etc/default/nginx 
fi 

test -x $DAEMON || exit 0 

set -e 

. /lib/lsb/init-functions 

# We made the awk expression more precise: 
# https://code.google.com/p/phusion-passenger/issues/detail?id=1060 
PID=$(awk -F'[ \t;]+' '/[^#]\<pid/ {print $2}' /etc/nginx/nginx.conf) 
if [ -z "$PID" ] 
then 
    PID=/var/run/nginx.pid 
fi 

# Check if the ULIMIT is set in /etc/default/nginx 
if [ -n "$ULIMIT" ]; then 
    # Set the ulimits 
    ulimit $ULIMIT 
fi 

test_nginx_config() { 
       $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1 
       retvar=$? 
       if [ $retvar -ne 0 ] 
       then 
         exit $retvar 
       fi 
} 

start() { 
       start-stop-daemon --start --quiet --pidfile $PID \ 
         --retry 5 --exec $DAEMON --oknodo -- $DAEMON_OPTS 
} 

stop() { 
       start-stop-daemon --stop --quiet --pidfile $PID \ 
         --retry 5 --oknodo --exec $DAEMON 
} 

case "$1" in 
     start) 
       test_nginx_config 
       log_daemon_msg "Starting $DESC" "$NAME" 
       start 
       log_end_msg $? 
       ;; 

     stop) 
       log_daemon_msg "Stopping $DESC" "$NAME" 
       stop 
       log_end_msg $? 
       ;; 

     restart|force-reload) 
       test_nginx_config 
       log_daemon_msg "Restarting $DESC" "$NAME" 
       stop 
       sleep 1 
       start 
       log_end_msg $? 
       ;; 

     reload) 
       test_nginx_config 
       log_daemon_msg "Reloading $DESC configuration" "$NAME" 
       start-stop-daemon --stop --signal HUP --quiet --pidfile $PID \ 
         --oknodo --exec $DAEMON 
       log_end_msg $? 
       ;; 

     configtest|testconfig) 
       log_daemon_msg "Testing $DESC configuration" 
       if test_nginx_config; then 
         log_daemon_msg "$NAME" 
       else 
         exit $? 
       fi 
       log_end_msg $? 
       ;; 

     status) 
       status_of_proc -p $PID "$DAEMON" nginx 
       ;; 

     *) 
       echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2 
       exit 1 
       ;; 
esac 

exit 0 

我看到它,因爲test -x $DAEMON || exit 0線的值0退出。如果我將該行註釋掉,那麼在運行不存在的守護程序(/usr/sbin/nginx)時,腳本將在test_nginx_config()函數內突然停止。沒有/usr/local/nginx/目錄,因爲它的價值。

我是這個東西的總新手,所以可能有一些愚蠢的簡單的事情,但我只是需要得到這個啓動。任何幫助將不勝感激。

+0

'哪個nginx'的結果是什麼? – julienc

+0

當我運行'哪個nginx'時什麼也不輸出到控制檯。 – Gaios

+0

然後這可能是因爲nginx安裝不正確(它不在你的路徑中)。你使用'apt-get' /'yum'/...還是從源代碼安裝它? – julienc

回答

0

那麼,如果這是你的啓動腳本和nginx用於處理它,那麼,Nginx已被刪除的東西或某人。

相關問題