概述
如果你的Nginx是通过源码编译安装的,我们通常是在程序根目录下./sbin/nginx 运行。查看是否在后台运行ps -ef|grep nginx
这种方法,查看运行日志很不方便,这里我们可以通过systemd管理。
配置systemd
1 2 3
| #在/lib/systemd/system下创建nginx.service cd /lib/systemd/system vim nginx.service
|
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 控制单元:主要给出服务描述、启动顺序和依赖关系 [Unit] Description=nginx service After=network.target # 服务:主要给出服务的启动行为,如何启动、重启、停止 [Service] Type=forking
ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true
# 安装部分:主要说明如何安装这个配置文件,把该 unit 安装在哪个 target上,做到开机自启 [Install] WantedBy=multi-user.target
|
最后保存退出即可。
测试
1 2 3 4 5 6 7 8
| 启动nginx服务 # systemctl start nginx.service 停止nginx服务 # systemctl stop nginx.service 查看服务当前状态 # systemctl status nginx.service 设置开启自启动 # systemctl enable nginx.service
|
常见故障
1 2
| nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) #这个错误提示是 nginx.pid 文件缺失导致的错误
|
解决方法:关掉该进程,重启。
1 2
| # pkill -9 nginx # /usr/local/nginx/sbin/nginx -s reload
|
PID文件的作用:为了防止用户同时启动多个nginx,在你每次成功退出后/usr/local/nginx/logs/nginx.pid文件就会被自动清理掉。