Ruby on rails 携带NginX的乘客未在Fedora注册为服务

Ruby on rails 携带NginX的乘客未在Fedora注册为服务,ruby-on-rails,nginx,passenger,fedora,Ruby On Rails,Nginx,Passenger,Fedora,我运行的是Fedora 16 32位,我用nginx安装了passenger(安装过程中的选项1,一切都由我处理)。安装正常,但nginx未注册为服务 我可以直接通过/opt/nginx/sbin/nginx运行它的唯一方法。无法通过/etc/init.d/nginx运行它 有没有办法将其注册为服务?创建包含以下内容的文件/etc/systemd/system/nginx.service: [Unit] Description=Nginx After=syslog.target network.

我运行的是Fedora 16 32位,我用nginx安装了passenger(安装过程中的选项1,一切都由我处理)。安装正常,但nginx未注册为服务

我可以直接通过
/opt/nginx/sbin/nginx
运行它的唯一方法。无法通过
/etc/init.d/nginx运行它


有没有办法将其注册为服务?

创建包含以下内容的文件
/etc/systemd/system/nginx.service

[Unit]
Description=Nginx
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload

[Install]
WantedBy=multi-user.target
之后,您可以通过以下方式进行控制:

sudo systemctl stop|start|restart nginx.service

要使nginx在引导时启动,您可以运行sudo systemctl enable nginx.service

。在乘客支持下安装新编译的nginx,检查从命令行启动时是否正常运行,然后使用
sudo yum安装nginx
(它是CentOS)

最后,我在
/etc
文件夹中搜索了
*nginx*
文件,并将其中的
/usr/sbin/nginx
替换为
/opt/nginx/sbin/nginx
。然后重新启动计算机,并能够使用
sudo服务nginx start
启动nginx

当然有一种更优雅的方法可以做到这一点,但我懒得研究如何在每个Linux发行版中注册服务

我也在那里为你更换了路径

  • nginx.conf
  • nginx.pid
    ${prog}.pid
    )-否则它将无法停止nginx

对于nginx等分叉服务,建议在服务文件中包含
PIDFile=
选项。因此,上面的示例将在
Type=forking
行之后包含
PIDFile=/var/run/nginx.pid
。有关更多信息,请参阅:
sudo service nginx stop|start|restart