Quản trị viên Linux - Quản lý tài nguyên với systemctl

systemctllà tiện ích được sử dụng để điều khiển systemd. systemctl cung cấp cho quản trị viên CentOS khả năng thực hiện vô số hoạt động trên systemd bao gồm:

  • Định cấu hình đơn vị systemd
  • Nhận trạng thái của systemd unsis
  • Bắt đầu và dừng dịch vụ
  • Bật / tắt dịch vụ systemd cho thời gian chạy, v.v.

Cú pháp lệnh cho systemctl khá cơ bản, nhưng có thể phức tạp với các công tắc và tùy chọn. Chúng tôi sẽ trình bày các chức năng cơ bản nhất của systemctl cần thiết để quản trị CentOS Linux.

Basic systemctl syntax: 
systemctl [OPTIONS] COMMAND [NAME]

Sau đây là các lệnh phổ biến được sử dụng với systemctl :

  • start
  • stop
  • restart
  • reload
  • status
  • is-active
  • list-units
  • enable
  • disable
  • cat
  • show

Chúng ta đã thảo luận về bắt đầu , dừng , tải lại , khởi động lại , bậttắt với systemctl. Vì vậy, chúng ta hãy xem xét các lệnh thường được sử dụng còn lại.

trạng thái

Ở dạng đơn giản nhất, lệnh trạng thái có thể được sử dụng để xem toàn bộ trạng thái hệ thống -

[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

Sản lượng trên đã được cô đọng. Ở trạng thái systemctl trong thế giới thực sẽ xuất ra khoảng 100 dòng trạng thái quy trình đã xử lý.

Giả sử chúng tôi muốn kiểm tra trạng thái của dịch vụ tường lửa -

[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

Như bạn thấy, dịch vụ tường lửa của chúng tôi hiện đang hoạt động và đã hơn 4 giờ.

đơn vị danh sách

Lệnh list-units cho phép chúng ta liệt kê tất cả các đơn vị của một loại nhất định. Hãy kiểm tra các ổ cắm được quản lý bởi 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

Bây giờ hãy kiểm tra các dịch vụ đang chạy hiện tại -

[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

đang hoạt động

Lệnh đang hoạt động là một ví dụ về các lệnh systemctl được thiết kế để trả về thông tin trạng thái của một đơn vị.

[root@localhost rdc]# systemctl is-active ksm.service 
active

con mèo

cat là một trong những lệnh hiếm khi được sử dụng. Thay vì sử dụng cat at shell và nhập đường dẫn đến một tệp đơn vị, chỉ cần sử dụng 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]#

Bây giờ chúng ta đã khám phá cả systemdsystemctl cụ thể hơn, chúng ta hãy sử dụng chúng để quản lý các nguồn lực trong cgroups hoặc nhóm kiểm soát .