我使用RTMP作为outlined here进行了nginx的自定义构建。
我按照nginx website的建议使用以下设置创建了etc/systemd/system/nginx.service
,并对其自定义生成位置进行了少许编辑。
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/home/ubuntu/nginx_working/nginx-1.14.0/objs/nginx -t
ExecStart=/home/ubuntu/nginx_working/nginx-1.14.0/objs/nginx
ExecReload=/home/ubuntu/nginx_working/nginx-1.14.0/objs/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
User=root
PrivateTmp=true
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
如果我只是从终端启动nginx,nginx可以正常工作。
使用诸如systemctl start nginx
之类的systemd,终端挂起了一段时间,在此期间nginx正常工作,但是大约30秒后,我得到了Job for nginx.service failed because a timeout was exceeded.
此超时是错误的,因为在这30天内nginx运行得很好。我不确定为什么无法检测到nginx已启动?
答案 0 :(得分:0)
自己找到解决方案。
由于某些原因,发生以下错误Can't open PID file /run/nginx.pid
如AskUbuntu中所述,解决方案是将我的PID在配置中移动到日志位置/usr/local/nginx/logs