ผู้ดูแลระบบ Linux - การจัดการทรัพยากรด้วย systemctl
systemctlเป็นยูทิลิตี้ที่ใช้ในการควบคุม systemd. systemctl ช่วยให้ผู้ดูแลระบบ CentOS สามารถดำเนินการหลายอย่างบน systemd ได้แก่ -
- กำหนดค่าหน่วย systemd
- รับสถานะของ systemd untis
- เริ่มและหยุดบริการ
- เปิด / ปิดบริการ systemd สำหรับรันไทม์ ฯลฯ
ไวยากรณ์คำสั่งสำหรับsystemctlนั้นค่อนข้างธรรมดาแต่อาจทำให้ยุ่งเหยิงกับสวิตช์และตัวเลือกต่างๆ เราจะนำเสนอฟังก์ชันที่สำคัญที่สุดของsystemctl ที่จำเป็นสำหรับการจัดการ CentOS Linux
Basic systemctl syntax:
systemctl [OPTIONS] COMMAND [NAME]
ต่อไปนี้เป็นคำสั่งทั่วไปที่ใช้กับsystemctl -
- start
- stop
- restart
- reload
- status
- is-active
- list-units
- enable
- disable
- cat
- show
เราได้กล่าวแล้วเริ่มต้น , หยุด , โหลด , รีสตาร์ท , เปิดใช้งานและปิดการใช้งานกับ 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 ในโลกแห่งความจริงจะแสดงสถานะกระบวนการแบบทรีประมาณ 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
ใช้งานอยู่
คือใช้งานคำสั่งนี้เป็นตัวอย่างของคำสั่ง systemctl ที่ออกแบบมาเพื่อส่งกลับข้อมูลสถานะของหน่วย
[root@localhost rdc]# systemctl is-active ksm.service
active
แมว
catเป็นหนึ่งในคำสั่งที่ไม่ค่อยมีใครใช้ แทนการใช้แมวที่เปลือกและพิมพ์เส้นทางไปยังแฟ้มหน่วยเพียงแค่ใช้แมว systemctl
[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หรือกลุ่มควบคุม