在 Ubuntu 14.04 上将 OpenResty 作为服务运行

在 Ubuntu 14.04 上将 OpenResty 作为服务运行

我需要使用 Nginx 并启用 Lua 和一系列其他扩展,因此我按照以下说明进行操作https://openresty.org/并编译了 Nginx 的 OpenResty 变体。这个过程非常顺利,现在我在 上有了 nginx /usr/local/openresty/nginx/sbin/。执行时报告的版本./nginx -v是 1.9.3.2 - 正确。我可以通过执行 来启动并运行服务器./nginx

但是,我希望能够让它在启动时作为服务运行,就像通过 进行 vanilla Nginx 安装时通常的工作方式一样apt-get install nginx。我还希望能够使用诸如service nginx status|restart|stop|reload等命令。对于这种事情,我是一个彻头彻尾的新手。我曾尝试了解/etc/init.d/nginx我的其他一台服务器上的脚本内容,但修改它以使其与当前安装兼容并不是我所理解的事情。我希望这里有人能帮忙。

答案1

现在,Ubuntu 给出了答案。

您正在使用 Ubuntu Linux。您已经拥有 upstart 或 systemd(在本例中为前者)。不要从编写 System 5rc脚本开始。

因此,编写一个 upstart 作业文件。选择其中一个已经写好了对于 nginx,实际上是针对 OpenResty 进行修改。

Ubuntu 15.10 版 nginx-common 包附带一个 upstart 作业文件,开箱即用/etc/init/nginx.conf;尽管Ubuntu 14.04 版 nginx-common 包落后了几个版本,并且没有。直接从 Debian 源代码存储库中提取文件相当容易(nginx.upstart/etc/init/nginx.conf)。nginx wiki 上还有一个作业文件。

应用你的 OpenResty 修改会产生以下结果:

#/etc/init/openresty.conf 文件

描述“OpenResty nginx”

在文件系统和静态网络上启动
在运行级别 [016] 停止

env DAEMON ='/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf'

期望分叉
重生

启动前脚本
    [ -x $DAEMON ] || { 停止; 退出 0; }
    $DAEMON -t || {停止;退出 0;}
结束脚本

执行$DAEMON

停止前执行 $DAEMON -s quit

以通常的方式,将其用作新贵作业,与initctl startinitctl stop等一起使用。

当然,人们早就做过这些修改了。

进一步阅读

相关内容