云网牛站
所在位置:首页 > Linux命令 > 使用ps、rpm、/sbin/init命令查看Linux系统管理器程序

使用ps、rpm、/sbin/init命令查看Linux系统管理器程序

2018-11-13 09:47:19作者:runningwater稿源:linux 中国LCTT

想要在 Linux 中查看系统管理器程序(System V、Upstart、Systemd)请使用 ps、rpm、/sbin/init 命令,以下将为你介绍这方面的内容。

 

Linux 系统管理器程序的介绍

在 Linux 下经常看到系统管理器,最多的要数 System V 和 systemd 两种系统管理器:

1、System V (简写 SysV)

定义:System V(Sys V)是类 Unix 操作系统传统的也是首款初始化系统。init 是系统由内核启动期间启动的第一个进程,它是所有进程的父进程。起初,大多数 Linux 发行版都使用名为 System V(SysV)的传统的初始化系统。多年来,为了解决标准版本中的设计限制,发布了几个替代的初始化系统,例如 launchd、Service Management Facility、systemd 和 Upstart。但只有 systemd 最终被几个主流 Linux 发行版所采用,以替代传统的 SysV。

2、Systemd

定义:systemd 是一款全新的初始化系统及系统管理器,它被所有主流的 Linux 发行版实现/采用,以替代传统的 SysV 初始化系统。systemd 与 SysV 和 LSB(注:Linux Standards Base) 初始化脚本兼容。它可以作为 SysV 初始化系统的直接替代品。其是内核启动的第一个进程并占有数字 1 的 PID,它是所有进程的父进程。Fedora 15 是第一个采用 systemd 而不是 upstart 的发行版。systemctl 是一款命令行工具,它是管理 systemd 守护进程/服务(如 start、restart、stop、enable、disable、reload 和 status)的主要工具。systemd 使用 .service 文件而不是(SysV 初始化系统使用的) bash 脚本。systemd 把所有守护进程按顺序排列到自己 Cgroups (注:Cgroups 是 control groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源,如:cpu、memory、IO 等的机制。最初由 Google 的工程师提出,后来被整合进 Linux 内核。Cgroups 也是 LXC 为实现虚拟化所使用的资源管理手段,可以说没有 cgroups 就没有 LXC)中,所以通过查看 /cgroup/systemd 文件就可以查看系统层次结构。

除了以上 System V 和 systemd 外,还有第三种系统管理器:Upstart。

3、Upstart

定义:Upstart 基于事件驱动,是 /sbin/init 守护进程的替代品。用来在启动期间控制任务和服务的启动,在关机期间停止它们,及在系统运行过程中监视它们。它最初是为 Ubuntu 发行版开发的,但也可以在所有的 Linux 发行版中部署运行,以替代古老的 System V 初始化系统。它用于 Ubuntu 9.10 到 14.10 版本和基于 RHEL 6 的系统中,之后的被 systemd 取代了。

 

初始化系统管理器

在基于 Linux/Unix 的操作系统中,init (初始化的简称) 是内核启动系统时开启的第一个进程。

它持有的进程 ID(PID)号为 1,其在后台一直运行着,直到关机。

init 会查找 /etc/inittab 文件中相应配置信息来确定系统的运行级别,然后根据运行级别在后台启动所有的其它进程和应用。

作为 Linux 启动过程的一部分,BIOS、MBR、GRUB 和内核进程在此进程之前就被激活了。

下面列出的是 Linux 的可用运行级别(存在七个运行级别,从 0 到 6)。

0:停机

1:单用户模式

2:多用户,无 NFS(注:NFS 即 Network File System,网络文件系统)

3:全功能多用户模式

4:未使用

5:X11(GUI – 图形用户界面)

6:重启

 

要在 Linux 系统中查看使用哪个系统管理器(System V、Upstart、Systemd)

在 Linux 系统上运行如下命令来查看运行的系统管理器:

1、使用 ps 命令

输出示例:

# ps -p1 | grep "init|upstart|systemd"

1 ? 00:00:00 init

注:ps – 显示当前进程快照。ps 会显示选定的活动进程的信息。其输出不能确切区分出是 System V(SysV) 还是 upstart,所以我建议使用其它下面的命令。

参考:ps命令_Linux ps命令使用详解:报告当前系统的进程状态

2、使用 rpm 命令

输出示例:

# rpm -qf /sbin/init

SysVinit-2.86-17.el5

注:RPM 即 Red Hat Package Manager (红帽包管理),是一款功能强大的安装包管理命令行工具,在基于 Red Hat 的发行版中使用,如 RHEL、CentOS、Fedora、openSUSE 和 Mageia。此工具可以在系统/服务上对软件进行安装、更新、删除、查询及验证等操作。通常 RPM 文件都带有 .rpm 后缀。RPM 会使用必要的库和依赖库来构建软件,并且不会与系统上安装的其它包冲突。

参考:rpm命令_Linux rpm命令使用详解:RPM软件包的管理工具

3、使用 /sbin/init 文件

输出示例:

# /sbin/init --version

init (upstart 0.6.5)

Copyright (C) 2018 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.

注:/sbin/init 程序会将根文件系统从内存加载或切换到磁盘。这是启动过程的主要部分。这个进程开始时的运行级别为 “N”(无)。/sbin/init 程序会按照 /etc/inittab 配制文件的描述来初始化系统。

 

结语

以上介绍的是 Linux 系统中广泛使用的三种初始化系统管理器。只需要记住三个命令即可查看到。

 

相关主题

Linux/Windows系统管理神器:KShutdown

Linux命令子频道
精选文章
热门文章