我能够安装并运行 nginx 和 Passenger,但每次我重启服务器时,nginx 都无法启动。要启动 nginx 进程,我只需输入sudo /opt/nginx/sbin/nginx据我所知,我使用 ubuntu hardy 放入 /etc/init.d 中的任何内容都将被执行。有人知道可以模拟此命令行调用的命令吗?
sudo /opt/nginx/sbin/nginx
答案1
在启动时启动 nginx: sudo systemctl enable nginx
(不会立即启动)
启动 nginx: sudo systemctl start nginx
答案2
感谢提供的信息,如果有人需要分步说明。请访问/etc/init.d并运行sudo nano nginx-passenger.sh
,然后粘贴此代码:
#!/bin/bash
# this script starts the nginx process attached to passenger
sudo /opt/nginx/sbin/nginx
保存并退出。输入 使文件可执行sudo chmod +x /etc/init.d/nginx-passenger.sh
。您可以输入以下内容来测试脚本是否有效,sudo /etc/init.d/nginx-passenger.sh
这将运行脚本中的所有代码。在继续之前,验证它是否启动了 nginx。
然后仍在 /etc/init.d 目录中运行sudo update-rc.d nginx-passenger.sh defaults
。完成所有这些后,重新启动服务器,ngnix 现在应该会在启动时自动生成
答案3
/etc/init.d 只是启动脚本的存放位置。但那里的脚本并不会自动执行任何操作。
init 系统使用 /etc/rc#.d 目录中的符号链接来访问 /etc/init.d 文件夹中的脚本。符号链接的名称需要以 S 开头(以启动选项运行脚本)和以 K 开头(以停止选项运行脚本),后面跟着优先级数字和脚本名称。
有关更多信息,请参阅以下内容
/etc/init.d/README
/etc/rc1.d/README
/etc/rc2.d/README
或者,您可以将想要运行的命令放入 /etc/rc.local 脚本中,该脚本在系统启动并完成执行 /etc/rc2.d/ 文件夹中的所有脚本后运行。
答案4
我使用这个脚本来启动一个由 Passenger 支持的 nginx:
http://library.linode.com/development/frameworks/ruby/ruby-on-rails/nginx-ubuntu-8.04-hardy