用start-stop-daemon启动Nginx

原创
2016-07-28 08:29:10 886浏览

用start-stop-daemon启动Nginx

在前面学习Ubuntu apt-get install nginx 创建的nginx启动脚本中,看到start-stop-daemon的用法。

迅速查了一下手册(用man start-stop-daemon)。这个程序用来启动和关闭系统级别的进程。

下面我用该命令启动我自己编译的nginx程序:

start-stop-daemon--start--quiet--make-pidfile--pidfile/opt/nginx.pid--exec/home/chenshu/nginx/bin/nginx---c/home/chenshu/nginx/etc_nginx/nginx.conf

注意,这里都使用绝对路径,相对路径会有问题。

  • –pidfile 指定了保存进程id的文件 /opt/nginx.pid
    –exec 指定了可执行程序
    – 之后加上传递给nginx的参数 -c /home/chenshu/nginx/etc_nginx/nginx.conf
    –make-pidfile 使用 是因为有时候start-stop-daemon 不产生pidfile

单独运行nginx的时候,还可以指定 -t参数用于测试-c 参数指定的配置文件是否正确。

由于我要将所有的nginx程序,日志,配置都放在/home/dist/carrier/nginx目录下,因此对应的修改启动脚本/etc/init.d/nginx

由于没有找到办法指定error log的位置. 因此现在绕过的方法是 编译nginx的时候使用–prefix=/home/dist/carrier/nginx参数。

这里用到了之前没有用的DAEMON_OPTS变量,传递-c参数。注意,必须用双引号。

#!/bin/sh  
### BEGIN INIT INFO  # Provides:          nginx  # Required-Start:    $local_fs $remote_fs $network $syslog  # Required-Stop:     $local_fs $remote_fs $network $syslog  # 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  
CARRIER_HOME=/home/dist/carrier  
DAEMON=$CARRIER_HOME/nginx/bin/nginx  
PID_FILE=$CARRIER_HOME/nginx/nginx.pid  
C>$CARRIER_HOME/nginx/conf/nginx.conf  
DAEM>"-c $CONFIG_FILE"NAME=nginx  
DESC=nginx  

# Include nginx defaults if available  if [ -f /etc/default/nginx ]; then    . /etc/default/nginx  
fitest -x $DAEMON || exit0set-e. /lib/lsb/init-functions  

test_nginx_config() {  
    if$DAEMON -t $DAEMON_OPTS >/dev/null 2>&1; thenreturn0else$DAEMON -t $DAEMON_OPTSreturn $?  
    fi}  

case"$1"in    start)  
        echo -n "Starting $DESC: "        test_nginx_config  
        # Check if the ULIMIT is set in /etc/default/nginx  if [ -n "$ULIMIT" ]; then# Set the ulimits  
            ulimit $ULIMITfi        start-stop-daemon --start --quiet --make-pidfile --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS || trueecho"$NAME."        ;;  

    stop)  
        echo -n "Stopping $DESC: "        start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $DAEMON || trueecho"$NAME."        ;;  

    restart|force-reload)  
        echo -n "Restarting $DESC: "        start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $DAEMON || true        sleep 1        test_nginx_config  
        # Check if the ULIMIT is set in /etc/default/nginx  if [ -n "$ULIMIT" ]; then# Set the ulimits  
            ulimit $ULIMITfi        start-stop-daemon --start --quiet --make-pidfile --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS || trueecho"$NAME."        ;;  

    reload)  
        echo -n "Reloading $DESC configuration: "        test_nginx_config  
        start-stop-daemon --stop --signal HUP --quiet --pidfile $PID_FILE --exec $DAEMON || trueecho"$NAME."        ;;  

    configtest|testconfig)  
        echo -n "Testing $DESC configuration: "if test_nginx_config; thenecho"$NAME."elseexit $?  
        fi        ;;  

    status)  
        status_of_proc -p $PID_FILE"$DAEMON" nginx && exit0 || exit $?  
        ;;  
    *)  
        echo"Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2exit1        ;;  
esacexit0

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了 用start-stop-daemon启动Nginx,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。