SysVinit 和 Systemd 对比
systemd是一个全新的init系统和系统管理器,兼容传统的基于SysV init系统的所有主要的Linux发行版。
systemd兼容SysV和LSB init脚本,它作为SysV init系统的直接替代品。
systemd是内核启动并保持PID 1的第一个进程,它是系统运行后的所有进程的的父进程,Fedora 15是第一个支持systemd发行版。
systemctl是用于管理systemd守护程序/服务命令行实用程序和主要工具,例如(start, restart, stop, enable, disable, reload & status)。
systemd使用.service文件而不是bash脚本(SysV init使用)。systemd将所有守护进程排序到他们自己的Linux cgroup中,你可以通过搜索/cgroup/systemd文件来查看系统层次结构。
以下三个init系统在Linux中广泛使用。
- System V (Sys V): System V(Sys V)是Unix操作系统的第一个和传统的init系统之一。
- Upstart: Upstart是基于事件的/sbin/init守护程序。
- systemd: Systemd是一个新的init系统和系统管理器,它通过传统的SysV init系统实现/适用于所有主要的Linux发行版。
什么是System V(Sys V)?
System V(Sys V)是Unix操作系统的第一个和传统的init系统之一。init是内核启动系统期间启动的第一个进程,它是所有内容的父进程。
大多数Linux发行版首先使用称为System V(Sys V)的传统初始化系统。多年来,发布了几个替换初始化系统,以解决标准版本中的设计限制,例如launchd,Service Management Facility,systemd和Upstart。
但是,与传统的SysV init系统相比,systemd已经被几个主要的Linux发行版所采用。
什么是systemd?
systemd是一个新的init系统和系统管理器,它已成为大多数Linux发行版中非常流行并广泛适应的新标准init系统。systemctl是一个systemd实用程序,它可以帮助我们管理systemd系统。
系统功能
- systemd提供了强大的并行处理能力
- 使用socket和D-Bus激活来启动服务
- 提供按需启动(on-demand starting)守护进程
- 使用Linux cgroup跟踪进程
- 支持快照(snapshotting)和恢复(restoring)系统状态
- 维护挂载和自动挂载点
- 完善实现了基于事务依赖性的服务控制逻辑
常见操作对比
描述 | SysVinit | Systemd |
---|---|---|
启动服务 | service example start | systemctl start example |
停止服务 | service example stop | systemctl stop example |
重新启动服务 | service example restart | systemctl restart example |
重新加载服务配置文件 | service example reload | systemctl reload example |
查看服务状态 | service example status | systemctl status example |
系统启动时启用服务 | chkconfig example on | systemctl enable example |
系统启动时禁用服务 | chkconfig example off | systemctl disable example |
打印服务列表 | chkconfig --list | systemctl list-unit-files --type=service |
参考链接