ในคู่มือนี้ เราอธิบายวิธีใช้ systemctl เพื่อแสดงรายการบริการและตรวจสอบสถานะของพวกเขา เราจะครอบคลุมการใช้งานอื่นๆ ของ systemctl ด้วย
มาจากบริการ run_init systemctl เป็นลมลึกใหม่ ฉันมั่นใจว่ามีหลายเหตุผลที่ฉันผิด และฉันได้ยินการอภิปรายเพื่อและต่อต้านและเปลี่ยนใจไปมา 몇 ครั้ง หลังจากใช้งานทุกวันที่ทำงาน ฉันอยู่ในค่าย systemctl ตอนนี้ ภาษาของคำสั่งรู้สึกเป็นธรรมชาติมากขึ้น ตามระดับฟังก์ชันวันต่อวัน ฉันชอบมัน ฉันยินดีต้อนรับการเปลี่ยนแปลง และต้านการกลับไปเมื่อทำงานบนระบบเก่า มาไปดู systemctl และวิธีการทำงานกัน
สถานะ Systemctl
การใช้งานแรกและสำคัญที่สุดของ systemctl คือการตรวจสอบสถานะบริการ นี่คือไวยากรณ์:
#systemctl command argument #systemctl status service

systemctl status service
นั่นคือข้อมูลบริการ atd ของคุณ เริ่มต้นเมื่อเร็วๆ นี้ (ฉันควร reboot…), และ active PID อยู่ที่นั่นหากฉันต้องการ kill มัน แม้เราจะทำได้ด้วย systemctl ด้วย ดังนั้นจะตรวจสอบอะไร? ขั้นตอนรวดเร็วและง่าย ตรวจสอบบริการที่ล้มเหลว
#systemctl --failed --type=service

systemctl –failed –type=service
สืบสวนเหล่านี้และตัดสินใจว่าปกติหรือไม่ คุณรู้ยังไงว่าปกติ? ตรวจสอบบริการที่กำลังรัน:
#systemctl -t service --state=active

systemctl -t service –state=active
หลังจากอ่านข้อมูลแล้ว ให้บันทึกไว้
#systemctl -t service --state=active >date$systemhealth.log
ในวันหลังๆ ให้ diff check
#systemctl -t service --state=active > date$systemhealth.log
#diff day1systemhealth.log day2systemhealth.log

diff day1systemhealth.log day2systemhealth.log
นั่นคือทั้งหมด ตอนนี้คุณรู้ว่ามีบางอย่างที่ควรจะออนไลน์ หากคุณกำลังทำความคุ้นเคยกับระบบใหม่ นี่คือชุดบริการที่ดีที่จะตรวจสอบ
LAMP
ลองดูสแต็กพื้นฐานที่ส่วนใหญ่เราเรียนรู้ที่จะ deploy ในวันแรกๆ โอเค และหากคุณไม่รู้ชื่อบริการที่คุณกำลังมองหา ไม่เป็นไร Tab completion เปิดใช้งานสำหรับ systemctl เพียงพิมพ์ apache กด tab สองครั้ง และเลือกสิ่งที่คุณต้องการ

systemctl status apache
#systemctl status apache2.service mongo mysql

systemctl status apache2.service mongo mysql
อยากเข้าลึกขึ้น?
#systemctl list-dependencies apache2.service

systemctl list-dependencies apache2.service
มันแสดง dependencies ทั้งหมดของบริการ และให้สถานะของแต่ละตัวพร้อมจุดสีที่เป็นมิตร สีเขียวสำหรับดี สีแดงสำหรับล้มเหลว
Network
ต่อไป มาตรวจสอบว่า network ทำงานได้
#systemctl status networking ufw wpa

systemctl status networking ufw wpa
หากยังไม่ชัดเจน คุณสมบัติที่ฉันชอบของ systemctl คือการควบคุมบริการหลายอย่างพร้อมกัน และ自动 pipe เข้า less
การควบคุมบริการ
แล้ว ตอนนี้คุณมีบริการที่ล้มเหลวบางอย่างระบุแล้ว หรือคุณได้ดำเนินการเปลี่ยนแปลงบริการ เช่น อัปเดตไฟล์ sshd.config และต้องการ reload หรือคุณกำลังเพิ่มบริการใหม่ หรือลบมันโดยสิ้นเชิง?
มันง่ายกับ systemctl และคุณมีสองตัวเลือก Reload และ restart Reload เพียงอ่านไฟล์ config ใหม่ Restart ตัดการเชื่อมต่อและโหลดไฟล์ config ใหม่ ขึ้นอยู่กับความต้องการของคุณ ทั้งสองมีเหตุผลของตัวเองสำหรับการใช้งาน
Restart และ Reload
#systemctl restart atd #systemctl status atd

systemctl restart atd
นั่นคือทั้งหมด รีสตาร์ทแล้ว ข้อมูลใหม่เพิ่มเข้ามา ด้วยระบบที่มี load balancing แข็งแกร่ง ฉันชอบ restart ฉันรู้ว่าการเชื่อมต่อจะ reroute และ downtime จะไม่มีอยู่จริง อย่างน้อยเกือบจะไม่มี และฉันไม่ต้องกังวลว่าบางระบบหรือบริการไม่ทำงานดีกับ reload ไม่ว่าจะอย่างไร แจ้งเตือนผู้ใช้และลูกค้าก่อน restart/reload เสมอ
Stop, Start, และ Kill
หากคุณต้องการหยุดหรือ kill บริการ systemctl ทำได้เช่นกัน
#systemctl stop atd #systemctl start atd #systemctl kill atd #systemctl start atd
นั่นคือทั้งหมด ทำซ้ำการ restart

systemctl status atd
การ Enable และ Disable
บริการใหม่ที่คุณต้องการให้เริ่มต้นเมื่อบูท ต้อง enable
#systemctl enable
นั่นคือทั้งหมด ระบบของคุณตอนนี้เข้าใจว่าต้องเริ่มบริการใหม่เมื่อบูท หากคุณต้องการข้ามการรีบูท ไปข้างหน้าและเริ่มมันตอนนี้
#systemctl disable
และนั่นคือทั้งหมด บริการหยุด หากคุณต้องการลบ คุณจะต้องหยุดมันและจากนั้น uninstall
สรุป
แค่นั้นแหละ ไม่มีอะไรมาก บริการเดียวสำหรับวัตถุประสงค์เดียว ควบคุมระบบของคุณ เรียนรู้คำสั่ง shell เพิ่มเติมและวิธีบริหารระบบของคุณ