- Linux管理員教程
- 首頁
- CentOS概述
- 基本的CentOS Linux命令
- 檔案/資料夾管理
- 使用者管理
- 配額管理
- Systemd服務的啟動和停止
- 使用systemctl進行資源管理
- 使用cgroups進行資源管理
- 程序管理
- 防火牆設定
- 在CentOS Linux中配置PHP
- 在CentOS Linux中設定Python
- 在CentOS Linux中配置Ruby
- 在CentOS Linux中設定Perl
- 安裝和配置Open LDAP
- 建立SSL證書
- 安裝Apache Web伺服器CentOS 7
- 在CentOS 7上設定MySQL
- 設定Postfix MTA和IMAP/POP3
- 安裝匿名FTP
- 遠端管理
- CentOS中的流量監控
- 日誌管理
- 備份和恢復
- 系統更新
- Shell指令碼
- 包管理
- 卷管理
- 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命令:
- start(啟動)
- stop(停止)
- restart(重啟)
- reload(重新載入)
- status(狀態)
- is-active(是否活動)
- list-units(列出單元)
- enable(啟用)
- disable(停用)
- cat(顯示檔案內容)
- show(顯示資訊)
我們已經討論了使用systemctl的start、stop、reload、restart、enable和disable。所以讓我們來看一下其餘常用的命令。
status(狀態)
在最簡單的形式中,status命令可以用來檢視整個系統的狀態:
[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(列出單元)
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(是否活動)
is-active命令是systemctl命令的一個示例,它旨在返回單元的狀態資訊。
[root@localhost rdc]# systemctl is-active ksm.service active
cat(顯示檔案內容)
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,讓我們使用它們來管理cgroups或控制組中的資源。
廣告