systemd、upstart和system V

 systemd是Linux下的一种init软件,由Lennart Poettering(英语:Lennart Poettering)带头开发并在LGPL 2.1及后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务(英语:Service (systems architecture))间的依赖关系,并以此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销(英语:Computational overhead)的效果,最终代替现在常用的System V与BSD风格init程序。systemd 是 Linux 下一个与 SysV 和 LSB 初始化脚本兼容的系统和服务管理器。systemd 使用 socket 和 D-Bus 来开启服务,提供基于守护进程的按需启动策略,保留了 Linux cgroups 的进程追踪功能,支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的一个更为精细的逻辑控制,拥有前卫的并行性能。systemd 无需经过任何修改便可以替代 sysvinit 。systemd已纳入众多Linux发行版的软件源中,Fedora 15及后续版本都采用的systemd作为Linux下的默认init程序。(在 Fedora 14 的特性中,systemd 是作为一个技术预览。在 Fedora 15 中替代 Upstart 作为默认管理器,具体可参见fedora官方文档说明点击打开链接 )


SysVinit守护进程(sysvinit软件包)是一个基于运行级别的系统,它使用运行级别(单用户、多用户以及其他更多级别)和链接(位于/etc /rc?.d目录中,分别链接到/etc/init.d中的init脚本)来启动和关闭系统服务。Upstart init守护进程(upstart软件包)则是基于事件的系统,它使用事件来启动和关闭系统服务。


 

以下是两种服务管理的却别和对应的命令.

任务 指令 新指令
使某服务自动启动 chkconfig –level 3 sshd on systemctl enable sshd.service
使某服务不自动启动 chkconfig –level 3 sshd off systemctl disable sshd.service
检查服务状态 service sshd status systemctl status sshd.service (服务详细信息) systemctl is-active sshd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig –list systemctl list-units –type=service
启动某服务 service sshd start systemctl start sshd.service
停止某服务 service sshd stop systemctl stop sshd.service
重启某服务 service sshd restart systemctl restart sshd.service

<表参考自http://www.talaland.com/systemd-service-configuration/>


RHEL6 使用新的Upstart启动服务替换先前的System V init,Upstart是事件驱动型的,因此,它只包含按需启动的脚本,这将使启动过程变得更加迅速。经过良好调优并使用Upstart启动方式的Linux服务器的启动速度要明显快于原有的使用System V init的系统。 RHEL 6对启动过程的改变相对较少,兼容SysV,所以依然可以处理那些在目录/etc/init.d中包含服务脚本的服务,runlevel的概念也是存在于RHEL6中的<fedora因为使用的是systemd,所以基本上runlevel的概念也就不存在了>。


RHEL6下的相关改变:

/etc/inittab 只用来配置系统默认运行级别,所有先前由/etc/inittab来设定的条目,现在都在/etc/init/目录中以单个文件的形式存在。
/etc/init/rcS.conf 通过启动大部分的基本服务来对系统进行初始化的设定
/etc/init/rc.conf 对启动各自的运行级别(runlevel)的设定
/etc/init/control-alt-delete.conf 定义当用户按“control-alt-delete”三个键时的系统行为
/etc/init/tty.conf、/etc/init/serial.conf 定义系统处理终端登录
/etc/sysconfig/init 中ACTIVE_CONSOLES决定了虚拟控制台的创建,AUTOSWAP是否自动检测交换分区,单用户模式下的root使用的SHELL,默认为/sbin/sushell,另外/sbin/sulogin会在单用户模式启动之前弹出登录提示。




 

posted @ 2012-06-11 20:51  枯木-Linux  阅读(460)  评论(0编辑  收藏  举报