管理系统服务
systemd提供systemctl命令来运行、关闭、重启、显示、启用/禁用系统服务。
sysvinit命令和systemd命令
systemd提供systemctl命令与sysvinit命令的功能类似。当前版本中依然兼容service和chkconfig命令,相关说明如表1,但建议用systemctl进行系统服务管理。
表 1 sysvinit命令和systemd命令的对照表
显示所有当前服务
如果您需要显示当前正在运行的服务,使用命令如下:
systemctl list-units --type service
如果您需要显示所有的服务(包括未运行的服务),需要添加-all参数,使用命令如下:
systemctl list-units --type service --all
例如显示当前正在运行的服务,命令如下:
$ systemctl list-units --type service
UNIT LOAD ACTIVE SUB JOB DESCRIPTION
atd.service loaded active running Deferred execution scheduler
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
dracut-shutdown.service loaded active exited Restore /run/initramfs on shutdown
firewalld.service loaded active running firewalld - dynamic firewall daemon
getty@tty1.service loaded active running Getty on tty1
gssproxy.service loaded active running GSSAPI Proxy Daemon
irqbalance.service loaded active running irqbalance daemon
iscsid.service loaded activating start start Open-iSCSI
显示服务状态
如果您需要显示某个服务的状态,可执行如下命令:
systemctl status name.service
相关状态显示参数说明如表2所示。
表 2 状态参数说明
如果您需要鉴别某个服务是否运行,可执行如下命令:
systemctl is-active name.service
is-active命令的返回结果如下:
表 3 is-active命令的返回结果
仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。 举例来说,开机或者 是挂载时才会进行一次的 quotaon 功能 |
|
正在执行当中,不过要等待其他的事件才能继续处理。例如:打印的队列相关服务 就是这种状态,虽然正在启动中,不过也需要真的有队列进来 (打印作业) 这样他才会继续唤醒打印机 服务来进行下一步打印的功能 |
|
同样,如果您需要判断某个服务是否被启用,可执行如下命令:
systemctl is-enabled name.service
is-enabled命令的返回结果如下:
表 4 is-enabled命令的返回结果
例如查看gdm.service服务状态,命令如下:
# systemctl status gdm.service
gdm.service - GNOME Display Manager Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled) Active: active (running) since Thu 2013-10-17 17:31:23 CEST; 5min ago
Main PID: 1029 (gdm)
CGroup: /system.slice/gdm.service
├─1029 /usr/sbin/gdm
├─1037 /usr/libexec/gdm-simple-slave --display-id /org/gno... └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager.
运行服务
如果您需要运行某个服务,请在root权限下执行如下命令:
systemctl start name.service
例如运行httpd服务,命令如下:
# systemctl start httpd.service
关闭服务
如果您需要关闭某个服务,请在root权限下执行如下命令:
systemctl stop name.service
例如关闭蓝牙服务,命令如下:
# systemctl stop bluetooth.service
重启服务
如果您需要重启某个服务,请在root权限下执行如下命令:
systemctl restart name.service
执行命令后,当前服务会被关闭,但马上重新启动。如果您指定的服务,当前处于关闭状态,执行命令后,服务也会被启动。
例如重启蓝牙服务,命令如下:
# systemctl restart bluetooth.service
启用服务
如果您需要在开机时启用某个服务,请在root权限下执行如下命令:
systemctl enable name.service
例如设置httpd服务开机时启动,命令如下:
# systemctl enable httpd.service
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
禁用服务
如果您需要在开机时禁用某个服务,请在root权限下执行如下命令:
systemctl disable name.service
例如在开机时禁用蓝牙服务启动,命令如下:
# systemctl disable bluetooth.service
Removed /etc/systemd/system/bluetooth.target.wants/bluetooth.service.
Removed /etc/systemd/system/dbus-org.bluez.service.