写给linux系统管理员看的systemd 第一部分 (systemd作者blog翻译过来的)
http://0pointer.de/blog/projects/systemd-for-admins-1.html就像很多人知道的那样, systemd是新版本fedora(从F14开始)的init系统, 它也正在被一些其它的发行版所采用(例如, OpenSuse).对系统管理员来说,systmed提供了许多新的特性,并在本质上改变和加强了系统管理过程.这篇博
http://0pointer.de/blog/projects/systemd-for-admins-1.html
就像很多人知道的那样, systemd是新版本fedora(从F14开始)的init系统, 它也正在被一些其它的发行版所采用(例如, OpenSuse).
对系统管理员来说,systmed提供了许多新的特性,并在本质上改变和加强了系统管理过程.
这篇博客是系列文章的第一部分, 在接下来的几个月我打算差不多每周写一篇.
每篇文章我将尝试解释systemd的一个新的特性. 其实它的许多特性都很小很简单, 所以这个系列应该会使很多读者感兴趣.
当然有时,我也会深挖systemd提供给你的一些伟大的新特性.
Verifying Bootup
传统的 linux系统在启动过程中, 你看到大量的短信息从你的屏幕上滚过.systemd中, 随着我们改进启动速度并使启动过程并行化, 这些信息的显示时间越来越短, 而且可读性也越来越差了, 就如同你在某些像Plymouth那样提供图像启动画面的启动程序中看到的那样.尽管它仍然提供了有用的相关性信息, 它在启动过程中记录了每个服务的开始,是否成功或失败(绿色[OK]代表成功,红色FAILED代表失败].
为了在提高机器启动速度并使启动过程并行执行的同时, 让启动的信息在运行时更友好,我们为systemd增加了一个新的特性,用来在启动时和运行时跟踪并记录每个服务是否启动成功, 是否以非0值退出, 是否超时, 是否非正常终止(被段错误信号或类似的东西), 只是在shell下简单的敲systemdctl, 你就能查询所有服务的状态, 无论是systemd的还是SysV/LSB的服务
[root@lambda] ~# systemctl
UNIT LOAD ACTIVE SUB JOB DESCRIPTION
dev-hugepages.automount loaded active running Huge Pages File System Automount Point
dev-mqueue.automount loaded active running POSIX Message Queue File System Automount Point
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point
sys-kernel-debug.automount loaded active waiting Debug File System Automount Point
sys-kernel-security.automount loaded active waiting Security File System Automount Point
sys-devices-pc...0000:02:00.0-net-eth0.device loaded active plugged 82573L Gigabit Ethernet Controller
[...]
sys-devices-virtual-tty-tty9.device loaded active plugged /sys/devices/virtual/tty/tty9
-.mount loaded active mounted /
boot.mount loaded active mounted /boot
dev-hugepages.mount loaded active mounted Huge Pages File System
dev-mqueue.mount loaded active mounted POSIX Message Queue File System
home.mount loaded active mounted /home
proc-sys-fs-binfmt_misc.mount loaded active mounted Arbitrary Executable File Formats File System
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
acpid.service loaded active running ACPI Event Daemon
atd.service loaded active running Execution Queue Daemon
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
bluetooth.service loaded active running Bluetooth Manager
console-kit-daemon.service loaded active running Console Manager
cpuspeed.service loaded active exited LSB: processor frequency scaling support
crond.service loaded active running Command Scheduler
cups.service loaded active running CUPS Printing Service
dbus.service loaded active running D-Bus System Message Bus
getty@tty2.service loaded active running Getty on tty2
getty@tty3.service loaded active running Getty on tty3
getty@tty4.service loaded active running Getty on tty4
getty@tty5.service loaded active running Getty on tty5
getty@tty6.service loaded active running Getty on tty6
haldaemon.service loaded active running Hardware Manager
hdapsd@sda.service loaded active running sda shock protection daemon
irqbalance.service loaded active running LSB: start and stop irqbalance daemon
iscsi.service loaded active exited LSB: Starts and stops login and scanning of iSCSI devices.
iscsid.service loaded active exited LSB: Starts and stops login iSCSI daemon.
livesys-late.service loaded active exited LSB: Late init script for live image.
livesys.service loaded active exited LSB: Init script for live image.
lvm2-monitor.service loaded active exited LSB: Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
mdmonitor.service loaded active running LSB: Start and stop the MD software RAID monitor
modem-manager.service loaded active running Modem Manager
netfs.service loaded active exited LSB: Mount and unmount network filesystems.
NetworkManager.service loaded active running Network Manager
ntpd.service loaded maintenance maintenance Network Time Service
polkitd.service loaded active running Policy Manager
prefdm.service loaded active running Display Manager
rc-local.service loaded active exited /etc/rc.local Compatibility
rpcbind.service loaded active running RPC Portmapper Service
rsyslog.service loaded active running System Logging Service
rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service
sendmail.service loaded active running LSB: start and stop sendmail
sshd@172.31.0.53:22-172.31.0.4:36368.service loaded active running SSH Per-Connection Server
sysinit.service loaded active running System Initialization
systemd-logger.service loaded active running systemd Logging Daemon
udev-post.service loaded active exited LSB: Moves the generated persistent udev rules to /etc/udev/rules.d
udisks.service loaded active running Disk Manager
upowerd.service loaded active running Power Manager
wpa_supplicant.service loaded active running Wi-Fi Security Service
avahi-daemon.socket loaded active listening Avahi mDNS/DNS-SD Stack Activation Socket
cups.socket loaded active listening CUPS Printing Service Sockets
dbus.socket loaded active running dbus.socket
rpcbind.socket loaded active listening RPC Portmapper Socket
sshd.socket loaded active listening sshd.socket
systemd-initctl.socket loaded active listening systemd /dev/initctl Compatibility Socket
systemd-logger.socket loaded active running systemd Logging Socket
systemd-shutdownd.socket loaded active listening systemd Delayed Shutdown Socket
dev-disk-by\x1...x1db22a\x1d870f1adf2732.swap loaded active active /dev/disk/by-uuid/fd626ef7-34a4-4958-b22a-870f1adf2732
basic.target loaded active active Basic System
bluetooth.target loaded active active Bluetooth
dbus.target loaded active active D-Bus
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User
network.target loaded active active Network
remote-fs.target loaded active active Remote File Systems
sockets.target loaded active active Sockets
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
JOB = Pending job for the unit.
221 units listed. Pass --all to see inactive units, too.
[root@lambda] ~#
(我缩短了一些输出,移除了一些与此篇博客无关的行)
看一下ACTIVE列, 显示了一个服务(或者任何systemd维护的单元, 可以不只是服务,我们在后续文章中可以看到)的最基本的状态, 可能是active状态(比如: running), 可能是incative(比如: not running))也可能是其他状态.如果仔细看你会发现有一项标记为maintenance,红色高亮. 这提示你这个服务运行失败或者碰到其他问题.本例中是ntpd.现在让我们通过systemdctl status命令看看ntpd到底发生了什么.[root@lambda] ~# systemctl status ntpd.service
ntpd.service - Network Time Service
Loaded: loaded (/etc/systemd/system/ntpd.service)
Active: maintenance
Main: 953 (code=exited, status=255)
CGroup: name=systemd:/systemd-1/ntpd.service
[root@lambda] ~#
这告知我们NTPzai运行时终止了(它运行时的PID是953), 并告诉我们确切的出错条件:进程以状态码255退出.
以后的systmed版本中,我们计划把这种情况做成钩子,连接ABRT(自动bug报告工具). 这样,如果systemctl status告诉你一个服务崩溃了, 它将指示给你在ABRT中确切的崩溃dump内容
总结: 用systemctl和systemctl status作为传统SysV启动信息的代替工具, 更现代,更完备.system status不但能捕获更多的出错细节, 还能在提供启动错误信息的同时提供运行时错误信息
下周见
更多推荐
所有评论(0)