其实我们常常看到系统管理器(SystemManager)这词,但极少有人揣测其准确意义。如今我们将向你展示其区别。
我会尽自己所能来解释清楚一切。我们大多都晓得SystemV和systemd两种系统管理器。SystemV(缩写SysV)是旧式系统所使用的古老且传统的初始化系统及系统管理器。
Systemd是全新的初始化系统及系统管理器,但是已被大部份主流Linux发行版所采用。
Linux系统中主要有三种有名而仍在使用的初始化系统。大多数Linux发行版都使用其中之一。
哪些是初始化系统管理器?
在基于Linux/Unix的操作系统中,init(初始化的简称)是内核启动系统时开启的个进程。
它持有的进程ID(PID)号为1,其在后台仍然运行着,直至死机。
init会查找/etc/inittab文件中相应配置信息来确定系统的运行级别,之后按照运行级别在后台启动所有的其它进程和应用。
作为Linux启动过程的一部份,BIOS、MBR、GRUB和内核进程在此进程之前就被激活了。
下边列举的是Linux的可用运行级别(存在七个运行级别,从0到6)。
下边列举的是Linux系统中广泛使用的三种初始化系统。
哪些是SystemV(SysV)?
SystemV(SysV)是类Unix操作系统传统的也是初始化系统。init是系统由内核启动期间启动的个进程,它是所有进程的父进程。
原本,大多数Linux发行版都使用名为SystemV(SysV)的传统的初始化系统。多年来,为了解决标准版本中的设计限制linux下怎么查看当前系统的版本,发布了几个取代的初始化系统,比如launchd、ServiceManagementFacility、systemd和Upstart。
但只有systemd终被几个主流Linux发行版所采用,以取代传统的SysV。
哪些是Upstart?
Upstart基于风波驱动,是/sbin/init守护进程的取代品。拿来在启动期间控制任务和服务的启动,在死机期间停止它们,及在系统运行过程中监视它们。
它初是为Ubuntu发行版开发的,但也可以在所有的Linux发行版中布署运行,以取代古老的SystemV初始化系统。
它用于Ubuntu9.10到14.10版本和基于RHEL6的系统中,以后的被systemd替代了。
哪些是systemd?
systemd是一款全新的初始化系统及系统管理器,它被所有主流的Linux发行版实现/采用,以取代传统的SysV初始化系统。
systemd与SysV和LSB(LCTT评注:LinuxStandardsBase)初始化脚本兼容。它可以作为SysV初始化系统的直接取代品。其是内核启动的个进程并占有数字1的PID,它是所有进程的父进程。
Fedora15是个采用systemd而不是upstart的发行版。systemctl是一款命令行工具,它是管理systemd守护进程/服务(如start、restart、stop、enable、disable、reload和status)的主要工具。
systemd使用.service文件而不是(SysV初始化系统使用的)bash脚本。systemd把所有守护进程按次序排列到自己Cgroups(LCTT评注:Cgroups是controlgroups的简写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的数学资源,如:cpu、memory、IO等的机制。初由Google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段linux下怎么查看当前系统的版本,可以说没有cgroups就没有LXC)中,所以通过查看/cgroup/systemd文件就可以查看系统层次结构。
在Linux上怎么辨识出系统管理器
在系统上运行如下命令来查看运行着哪些系统管理器:
(LCTT评注:原文繁琐啰嗦,翻译时进行了剪裁整理。)
方式1:使用ps命令
ps–显示当前进程快照。ps会显示选取的活动进程的信息。其输出不能准确分辨出是SystemV(SysV)还是upstart,所以我建议使用其它方式。
# ps -p1 | grep "init|upstart|systemd"
1 ? 00:00:00 init
方式2:使用rpm命令
RPM即RedHatPackageManager(红帽包管理)linux命令vi长春linux培训,是一款功能强悍的安装包管理命令行工具,在基于RedHat的发行版中使用,如RHEL、CentOS、Fedora、openSUSE和Mageia。此工具可以在系统/服务上对软件进行安装、更新、删除、查询及验证等操作。一般RPM文件都带有.rpm后缀。
RPM会使用必要的库和依赖库来建立软件,但是不会与系统上安装的其它包冲突。
# rpm -qf /sbin/init
SysVinit-2.86-17.el5
方式3:使用/sbin/init文件
/sbin/init程序会将根文件系统从显存加载或切换到c盘。
这是启动过程的主要部份。这个进程开始时的运行级别为“N”(无)。/sbin/init程序会根据/etc/inittab配制文件的描述来初始化系统。
# /sbin/init --version
init (upstart 0.6.5)
Copyright (C) 2010 Canonical Ltd.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
via:/how-to-determine-which-init-system-manager-is-running-on-linux-system/
作者:PrakashSubramanian选题:lujun9972译者:runningwater校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出