将 Linux 服务更改为在启动时在命名空间中启动,而不仅仅是正常启动

将 Linux 服务更改为在启动时在命名空间中启动,而不仅仅是正常启动

是否可以告诉应用程序在启动时在网络命名空间中启动,而不是正常启动?我在 Ubuntu 14.04 LTS 上运行 transmission-daemon。它在启动时启动,这很好,我只需要它在命名空间中启动。我的命名空间是使用 /etc/network/interfaces 文件中的 pre-up 创建的。似乎最有效的方法是改变已经使服务在启动时启动的内容,但我可能是错的。

答案1

“开机启动”部分:

编写 Upstart 服务配置并将其放入/etc/init食谱有示例。或者,修改现有的示例transmission.conf(如果有)。

对于未来的 Ubuntu 版本(15.04 及更高版本),您将需要使用 systemd。编写一个transmission.service并将其放入/etc/systemd/system

“…在 netns 中”部分:

检查新贵食谱,没有相关设置(除了简单的 chroot)。大多数现有的 Upstart init 脚本确实仍然依赖外部工具来完成此类任务,所以ip netns没问题。

目前 systemd 也面临同样的问题。加入命名空间=,您只能指定另一个服务单元,而不能指定命名的命名空间。

相关内容