- Linux 管理教程
- 家
- CentOS概述
- CentOS Linux 基本命令
- 文件/文件夹管理
- 用户管理
- 配额管理
- Systemd 服务启动和停止
- 使用 systemctl 进行资源管理
- 使用 crgroups 进行资源管理
- 流程管理
- 防火墙设置
- 在 CentOS Linux 中配置 PHP
- 在 CentOS Linux 上设置 Python
- 在 CentOS Linux 上配置 Ruby
- 为 CentOS Linux 设置 Perl
- 安装和配置开放 LDAP
- 创建 SSL 证书
- 安装 Apache Web 服务器 CentOS 7
- CentOS 7 上的 MySQL 设置
- 设置 Postfix MTA 和 IMAP/POP3
- 安装匿名 FTP
- 远程管理
- CentOS中的流量监控
- 日志管理
- 备份与恢复
- 系统升级
- 外壳脚本
- 包管理
- 卷管理
- Linux 管理有用资源
- Linux 管理员 - 快速指南
- Linux 管理员 - 有用的资源
- Linux 管理员 - 讨论
使用 systemctl 进行资源管理
systemctl是用于控制 systemd 的实用程序。systemctl 为 CentOS 管理员提供了在 systemd 上执行多种操作的能力,包括 -
- 配置 systemd 单元
- 获取 systemd 的状态
- 启动和停止服务
- 启用/禁用运行时的 systemd 服务等。
systemctl的命令语法非常基本,但可能会与开关和选项混淆。我们将介绍管理 CentOS Linux 所需的systemctl最基本的功能。
Basic systemctl syntax: systemctl [OPTIONS] COMMAND [NAME]
以下是systemctl中使用的常用命令-
- 开始
- 停止
- 重新开始
- 重新加载
- 地位
- 活跃
- 列表单位
- 使能够
- 禁用
- 猫
- 展示
我们已经讨论了使用 systemctl启动、停止、重新加载、重新启动、启用和禁用。那么让我们回顾一下其余的常用命令。
地位
以最简单的形式,状态命令可用于查看整个系统状态 -
[root@localhost rdc]# systemctl status ● localhost.localdomain State: running Jobs: 0 queued Failed: 0 units Since: Thu 2017-01-19 19:14:37 EST; 4h 5min ago CGroup: / ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 ├─user.slice │ └─user-1002.slice │ └─session-1.scope │ ├─2869 gdm-session-worker [pam/gdm-password] │ ├─2881 /usr/bin/gnome-keyring-daemon --daemonize --login │ ├─2888 gnome-session --session gnome-classic │ ├─2895 dbus-launch --sh-syntax --exit-with-session
上述输出已被压缩。在现实世界中,systemctl status将输出大约 100 行树状进程状态。
假设我们要检查防火墙服务的状态 -
[root@localhost rdc]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-01-19 19:14:55 EST; 4h 12min ago Docs: man:firewalld(1) Main PID: 825 (firewalld) CGroup: /system.slice/firewalld.service └─825 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
如您所见,我们的防火墙服务当前处于活动状态,并且已经运行了 4 个多小时。
列表单位
list-units 命令允许我们列出某种类型的所有单位。让我们检查一下systemd管理的套接字-
[root@localhost]# systemctl list-units --type=socket UNIT LOAD ACTIVE SUB DESCRIPTION avahi-daemon.socket loaded active running Avahi mDNS/DNS-SD Stack Activation Socket cups.socket loaded active running CUPS Printing Service Sockets dbus.socket loaded active running D-Bus System Message Bus Socket dm-event.socket loaded active listening Device-mapper event daemon FIFOs iscsid.socket loaded active listening Open-iSCSI iscsid Socket iscsiuio.socket loaded active listening Open-iSCSI iscsiuio Socket lvm2-lvmetad.socket loaded active running LVM2 metadata daemon socket lvm2-lvmpolld.socket loaded active listening LVM2 poll daemon socket rpcbind.socket loaded active listening RPCbind Server Activation Socket systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe systemd-journald.socket loaded active running Journal Socket systemd-shutdownd.socket loaded active listening Delayed Shutdown Socket systemd-udevd-control.socket loaded active running udev Control Socket systemd-udevd-kernel.socket loaded active running udev Kernel Socket virtlockd.socket loaded active listening Virtual machine lock manager socket virtlogd.socket loaded active listening Virtual machine log manager socket
现在让我们检查当前正在运行的服务 -
[root@localhost rdc]# systemctl list-units --type=service UNIT LOAD ACTIVE SUB DESCRIPTION abrt-ccpp.service loaded active exited Install ABRT coredump hook abrt-oops.service loaded active running ABRT kernel log watcher abrt-xorg.service loaded active running ABRT Xorg log watcher abrtd.service loaded active running ABRT Automated Bug Reporting Tool accounts-daemon.service loaded active running Accounts Service alsa-state.service loaded active running Manage Sound Card State (restore and store) atd.service loaded active running Job spooling tools auditd.service loaded active running Security Auditing Service
活跃
is -active命令是 systemctl 命令的一个示例,旨在返回单元的状态信息。
[root@localhost rdc]# systemctl is-active ksm.service active
猫
cat是很少使用的命令之一。无需在 shell 中使用 cat 并输入单元文件的路径,只需使用systemctl cat即可。
[root@localhost]# systemctl cat firewalld # /usr/lib/systemd/system/firewalld.service [Unit] Description=firewalld - dynamic firewall daemon Before=network.target Before=libvirtd.service Before = NetworkManager.service After=dbus.service After=polkit.service Conflicts=iptables.service ip6tables.service ebtables.service ipset.service Documentation=man:firewalld(1) [Service] EnvironmentFile = -/etc/sysconfig/firewalld ExecStart = /usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS ExecReload = /bin/kill -HUP $MAINPID # supress to log debug and error output also to /var/log/messages StandardOutput = null StandardError = null Type = dbus BusName = org.fedoraproject.FirewallD1 [Install] WantedBy = basic.target Alias = dbus-org.fedoraproject.FirewallD1.service [root@localhost]#
现在我们已经更详细地探索了systemd和systemctl ,让我们使用它们来管理cgroup或control groups中的资源。