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

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

但是,我希望能够通过apt-get install nginx在启动时以通常的方式运行它作为服务运行。 我还希望能够使用诸如service nginx status|restart|stop|reload等命令。当涉及到这种事情时,我是一个完全和完整的新手。 我试图在我的其他服务器上理解/etc/init.d/nginx脚本的内容,但修改它以使用当前安装并不是我理解的。 我希望这里的某个人能够提供帮助。

现在,Ubuntu回答。

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

所以写一个upstart作业文件。 拿一个已经为nginx 编写过的,实际上是为OpenResty修改它。

Ubuntu 15.10版nginx-common软件包随附了一个upstart作业文件,开箱即用,如/etc/init/nginx.conf ; 虽然Ubuntu版本14.04 nginx-common软件包有几个版本,但却没有。 将文件直接从Debian源存储库( nginx.upstart )中提取出来相当容易。 在nginx wiki上还有一个/etc/init/nginx.conf作业文件。

应用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;  }
结束脚本

 exec $ DAEMON 

 pre-stop exec $ DAEMON -s退出

以通常的方式使用initctl startinitctl stop等作为upstart作业。

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

进一步阅读

  • Oliver Frommel(2014年)。 /etc/init/openresty.confNginx的OpenResty发行版ADMIN杂志 19。
  • 爱德华斯通(2013-02-18)。 nginx-upstart.conf 。 openresty-的PyPI。 GitHub上。
  • George Shammas(2015-08-11)。 /etc/init/nginx.conf 。 nginx维基。