Nginx配置开机启动 /etc/init.d/nginx

背景

下载Nginx安装包,编译安装。

安装目录:/usr/local/nginx

配置文件:/usr/local/nginx/conf/nginx.conf

创建/etc/init.d/nginx文件

在Nginx官网上的NGINX Init Scripts选择启动脚本,我这里是CentOS系统,选择 Red Hat NGINX Init Script, 将脚本拷贝到/etc/init.d/nginx

设置/etc/init.d/nginx访问权限

# !bin/bash
#(a+x参数表示 ==> all user can execute  所有用户可执行)
chmod a+x /etc/init.d/nginx

创建软连接

仔细观察脚本,脚本里面的nginx的相关路径与本机安装的路径不一致。

nginx文件 本机路径 脚本路径
nginx执行文件 /usr/bin/nginx /usr/sbin/nginx
nginx.conf配置文件 /usr/local/nginx/conf/nginx.conf /etc/nginx/nginx.conf

根据以上路径的不同创建软连接

# !bin/bash
ln -s /usr/bin/nginx /usr/sbin/nginx
ln -sfn /usr/local/nginx/conf/ /etc/nginx/

设置开机默认启动

# !bin/bash
vi /etc/rc.local

添加 /etc/init.d/nginx start

执行service nginx start命令出错

1、 Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details

执行killall -9 nginx关闭nginx服务即可

2、一直卡在`Starting nginx (via systemctl)

# !bin/bash

# 查看原因
service nginx status

提示:Can't open PID file /run/nginx.pid (yet?) after start: ...ctory

# 修改nginx.conf中的pid
pid  /etc/nginx/logs/nginx.pid;

# 创建nginx.pid
cd /etc/nginx && mkdir logs && touch logs/nginx.pid

# 替换 /lib/systemd/system/nginx.service 文件中的/run/nginx.pid,替换为/etc/nginx/logs/nginx.pid

# 执行命令
systemctl daemon-reload

# 关闭nginx服务
killall -9 nginx

# 正常开启服务
service nginx start


你可能感兴趣的:(Nginx配置开机启动 /etc/init.d/nginx)