我无法得到正确的项目在ubuntu-16.04和systemd上启动

我需要做一个新的镜像,并select新的16.04 Ubuntu的,所以我可以得到一些包的新版本,而不是从源代码安装。 到目前为止,我很遗憾,因为在线文档的决定是稀疏的。

对于12.04和14.04,我经常能够通过安装一个软件包,然后删除(不清除)它来创buildubuntu启动脚本,从而重新定义用于自定义编译的启动脚本。 然后我可以编辑它们来指向正确的configuration文件和二进制文件。

例如,要使用最新的openresty,我可以这样做:

apt-get install nginx apt-get remove nginx 

然后,我可以更新/etc/init.d/nginx脚本指向我的自定义二进制/configuration文件,我有一个快乐的Ubuntu的启动脚本。 大!

这种方法不再适用于16.04。

我编辑过:

  • /etc/init.d/nginx
  • /etc/init/nginx.conf
  • /lib/system.d/system/nginx.service

Ubuntu永远不会拉我的二进制文件(这是在/usr/local/openresty/nginx/sbin/nginx )。 它总是在启动时运行/sbin/nginx (我错过了首先卸载'nginx-core')或者什么也没有。 其他软件包也是如此。

关于从新贵转型而来的Ubuntu文档在这个领域是欠缺的,他们关心的是“起步停止”。

不知道 Ubuntu是在哪里决定的。 我无法find任何指向/sbin/nginxconfiguration文件。 没有日志帮助。 我遇到的每个潜在文件都指向备用二进制文件和configuration文件。

如果任何人都可以分享使用新发射系统的好资源以及它看起来/存储信息的地方,我会非常感激。

似乎有一个数据库涉及,因为它检测到文件更改,并要求我重新加载 – 但我还没有find它。

更新

在玩了很多之后,我想到了以下几点:

看来,nginx软件包安装了两种types的设置,但只使用一种。 有些问题与此有关。

  1. /etc/init.d/nginx/etc/init/nginx.conf
  2. /lib/systemd/system/nginx.service/etc/systemd/system/nginx.service

从试用和错误:*运行systemctl disable nginx.service禁用/删除大多数链接和文件*删除/etc/systemd/system/nginx.service中的文件,如果存在*将一个新的文件放在/ lib / systemd / system / nginx.service *运行systemctl enable nginx.service

/lib/systemd/system/nginx.service中的文件必须是文件; 它不能是符号链接(否则会出现太多的符号链接错误)

这似乎现在工作。 我希望我可以使用符号链接,因为这些文件绑定到版本控制。

你可以为你的自定义安装创build一个新的服务,然后使它自动启动?

 [Unit] Description=Jonathan Vanasco nginx [Service] ExecStart=STARTUP COMMAND YOU WANT FOR CUSTOM [Install] WantedBy=multi-user.target 

然后检查它开始:

 systemctl start NAMEOFCUSTOM.service 

然后设置为在启动时自动启动:

 systemctl enable NAMEOFCUSTOM.service