首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同发行版上的Init系统和服务管理

不同发行版上的Init系统和服务管理
EN

Unix & Linux用户
提问于 2014-06-24 18:00:00
回答 1查看 1.5K关注 0票数 5

是否概述了哪个Linux发行版提供了哪个(默认) init系统,并使用了哪个工具来启动/停止服务?

是否有一些独立于发行版的方式来启动/停止/查询服务?

  • /etc/init.d/xyz start只适用于system init系统。
  • service xyz start并不是在每个发行版上都可用的(哪个发行版(没有)有此功能?)
  • 根据可用命令进行大小写切换似乎是唯一可靠的方法。

背景:我们需要为不同的Linux发行版编写一个安装程序,它需要重新启动/查询服务。调用service工具是很酷的,但我不确定哪个发行版支持这一点。

EN

回答 1

Unix & Linux用户

发布于 2014-06-24 21:33:03

如果您正在安装此服务,那么您可能需要知道每个发行版服务管理,因为您应该正确地为要支持的那些平台编写init脚本/config。

  • 系统%d - systemctl start xyz.service Fedora 15+,RHEL7,Arch,Debian 8+,Ubuntu 15+,openSUSE 12.3+
  • 新贵 - service xyz start Ubuntu,Fedora 9+,RHEL6
  • SysV - /etc/init.d/xyz start RHEL5,Debian,Suse
  • OpenRC - /etc/init.d/xyz start Gentoo,高寒(支持Net/FreeBSD)
  • SMF - svcadm enable svc:/prefix/xyz Solaris,基于Opensolaris (illumos,smartos等)
  • rc - /etc/rc.d/xyz start BSDs
  • 发射装置 - launchctl start xyz OSX

SysV是大多数新init系统继续支持脚本的Linux标准(/etc/rc.d/xyz),因此这是您的基点。

systemd是Linux的发展方向。

我不知道有一个实用工具可以在许多平台上运行,但是大多数配置管理软件都可以进行跨平台服务管理。不幸的是,这意味着您还需要安装配置管理软件(或者至少需要底层模块和运行时ruby/python)。如果您正在管理您自己的计算机上的安装,这是很好的,因为您可以通过配置工具完成所有安装工作。如果你想把软件分发给任何人,那就不太好了。

下面的配置管理示例将与本地默认服务管理器交互,并在尚未运行的情况下启动xyz。你不需要知道更多的事情。

厨师 食谱可以管理service资源

代码语言:javascript
复制
service "xyz" do
  action :start
end

木偶service

代码语言:javascript
复制
service { "xyz":
  ensure => "running",
}

可抗service模块

代码语言:javascript
复制
- service: name=xyz state=started
票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/138994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档