用start-stop-daemon启动Nginx
程序员文章站
2022-05-11 22:58:16
...
用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