微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在某些Linux发行系统服务默认启用,而在其他情况下它不是?

我注意到在Debian中通过apt-get进行软件包安装后,认情况下会启用systemd中的服务.但是,在其他发行版(例如Arch Linux)中,认情况下禁用该程序包中的服务.

我的问题是:

>这个行为取决于什么?它是包管理器中的某个设置还是包本身决定它是否启用?

我的意思是在Debian上看起来像systemctl启用docker.service在安装后执行.在Arch-linux上,docker.service被禁用.

>我该如何改变它?

解决方法:

As the systemd preset blurb states,这是经销商制定的政策选择:

On Fedora all services stay off by default, so that installing a package will not cause a service to be enabled (with some exceptions). On Debian all services are immediately enabled by default, so that installing a package will cause its service(s) to be enabled right-away.

理论上,systemd发行版使用预设系统来决定是否应该在软件包安装后启用服务,在软件包安装后维护脚本中运行systemctl预设而不是systemctl enable;并将本地覆盖应用于分发策略就像在/ etc / systemd / system-preset /中创建自己的更高优先级预设一样简单. (Arch doco在这里颇具误导性.通常的情况是创建一个单独的本地预设文件解决特定服务.)

在实践中,一些systemd发行版不使用预设系统,并且将本地覆盖应用于systemd是使用发行版本身的机制,如果他们实际上有这样的话.

进一步阅读

>RaphaëlHertzog(2014-12-08). deb-systemd-helper does not respect systemd Preset files. Debian Bug#772555.
>“Enable installed units by default”. systemd.拱维基.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐