我需要制作一个新映像并选择了新的 16.04 ubuntu,这样我就可以获得某些软件包的更新版本,而不是从源代码安装。到目前为止,我对这个决定感到遗憾,因为在线文档很少。
在 12.04 和 14.04 中,我经常能够通过安装一个包,然后删除(而不是清除)它来创建 ubuntu 启动脚本,从而将启动脚本重新用于自定义编译。然后我可以编辑它们以指向正确的配置文件和二进制文件。
例如,要使用最新的 openresty,我可以这样做:
apt-get install nginx
apt-get remove nginx
Run Code Online (Sandbox Code Playgroud)
然后我可以更新/etc/init.d/nginx
脚本以指向我的自定义二进制/配置文件,我有一个快乐的 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 在哪里决定这个。我找不到任何指向/sbin/nginx
. 没有日志帮助。我遇到的每个潜在文件都指向备用二进制文件和配置。
如果有人可以分享有关使用新启动系统及其外观/存储信息的良好资源,我将不胜感激。
似乎涉及到一个数据库,因为它检测到文件更改并要求我重新加载 - 但我还没有找到它。
在玩弄了很多之后,我想出了以下内容:
nginx 包似乎安装了两种类型的设置,但只使用了一种。一些问题与此有关。
/etc/init.d/nginx
和 /etc/init/nginx.conf
/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 中的文件必须是文件;它不能是符号链接(否则会出现太多符号链接错误)
这似乎暂时有效。我希望我可以使用符号链接,因为这些文件与版本控制相关。
小智 5
您能否为您的自定义安装创建一个新服务,然后让它自动启动?
[Unit]
Description=Jonathan Vanasco nginx
[Service]
ExecStart=STARTUP COMMAND YOU WANT FOR CUSTOM
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
然后检查它开始:
systemctl start NAMEOFCUSTOM.service
Run Code Online (Sandbox Code Playgroud)
然后设置为开机自启动:
systemctl enable NAMEOFCUSTOM.service
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10772 次 |
最近记录: |