systemctl: 12 คำสั่งที่เชี่ยวชาญ Linux 🚀
คำสั่ง systemctl มีคุณลักษณะหลายประการที่มักมองข้ามไป นอกจากการเริ่มและหยุดบริการใน Linux แล้ว คุณยังสามารถแสดงรายการบริการที่ติดตั้งและตรวจสอบสถานะของบริการเหล่านั้นได้อีกด้วย มารีวิวกันสักหน่อยดีกว่า!
คำสั่ง Systemctl คืออะไร?
คำสั่ง systemctl เป็นเครื่องมือการจัดการส่วนกลางสำหรับระบบ systemd init โดยส่วนใหญ่รู้จักกันในชื่อเครื่องมือที่ใช้เพื่อเริ่มและหยุดบริการ แต่ยังมีอีกมากมายดังที่พิสูจน์ได้จาก หน้าคู่มือ ซึ่งมีมากกว่า 1,600 เส้น.
เนื่องจาก systemctl เป็นเครื่องมือการจัดการ ไม่ใช่เพียงตัวเรียกใช้บริการ ดังนั้นคุณจึงสามารถใช้มันเพื่อเข้าถึงข้อมูลที่เป็นประโยชน์เกี่ยวกับระบบของคุณและบริการ systemd ได้
ระบบปฏิบัติการ Linux ส่วนใหญ่ได้นำเอา systemd มาใช้ แต่บางส่วนก็เลือกที่จะคงไว้ซึ่งระบบ SystemV init แบบดั้งเดิม หากคุณไม่แน่ใจว่าการกระจายของคุณใช้แบบใด คุณสามารถค้นหาได้ง่ายๆ เราจะใช้คำสั่ง stat เพื่อดูไฟล์ init
สถิติ /sbin/เริ่มต้น

ไฟล์ปฏิบัติการ /sbin/init เป็นกระบวนการแรกที่เปิดตัวในการแจกจ่ายที่ใช้ SystemV ในการแจกแจงที่ใช้ systemd ลิงก์สัญลักษณ์ที่มีชื่อนั้นจะชี้ไปที่ systemd
บรรทัดแรกของผลลัพธ์แสดงให้เราเห็นว่าในเครื่องทดสอบ Ubuntu นี้ /sbin/init เป็นลิงก์สัญลักษณ์ไปยังไฟล์ /lib/systemd/systemd เห็นได้ชัดว่าการติดตั้ง Linux นี้ใช้ systemd หากเป็นการแจกแจงที่ใช้ SystemV บรรทัดจะมีเพียง "File: /sbin/init" เท่านั้น
บริการการสอบถามด้วย systemctl
บริการถูกกำหนดไว้ในไฟล์หน่วย และคุณจะเห็นคำว่า unit กระจายอยู่ในตัวเลือก systemctl ตัวอย่างเช่น เราสามารถรับรายการบริการโดยใช้คำสั่ง list-units โดยใช้ตัวเลือก –type
ระบบซีทีแอล รายการ-หน่วย --ประเภท=บริการ

ผลลัพธ์จะแสดงในโปรแกรมดูไฟล์ขนาดเล็ก ทำให้คุณสามารถนำทางและใช้ปุ่ม / เพื่อค้นหาได้
- หน่วย: ชื่อไฟล์หน่วย
- พก:หากไฟล์หน่วยบริการถูกอ่านเข้าไปในหน่วยความจำโดยไม่มีข้อผิดพลาดทางไวยากรณ์ คอลัมน์นี้จะมีคำว่า "โหลด" นี้ไม่ได้หมายความว่าบริการยังเปิดใช้งานอยู่
- สินทรัพย์:ภาพรวมว่าบริการกำลังเปิดใช้งานอยู่หรือไม่ บริการที่ใช้งานอยู่อาจไม่ได้ทำงานอยู่
- ซับมุมมองโดยละเอียดมากขึ้นว่าบริการกำลังทำงานอยู่หรือไม่ ตัวอย่างเช่น บริการที่ใช้งานอยู่อาจได้รับการกำหนดเวลาไว้ และอาจออกจากการทำงานครั้งล่าสุด
- คำอธิบาย: บรรทัดข้อความที่ใช้เพื่อระบุหรืออธิบายบริการ
จอแสดงผลรวมเฉพาะบริการที่ใช้งานอยู่เท่านั้น เพื่อดูบริการทั้งหมด เราจำเป็นต้องใส่ตัวเลือก –all
ระบบซีทีแอล รายการ-หน่วย --ทั้งหมด --ประเภท=บริการ

หากการดูทุกอย่างดูมากเกินไป เราสามารถกรองเอาต์พุตด้วยตัวเลือก –state
ระบบซีทีแอล รายการ-หน่วย --ประเภท=บริการ --สถานะ=กำลังทำงาน

ตัวเลือกสถานะจะยอมรับการทำงาน หยุด เปิดใช้งาน ปิดใช้งาน และล้มเหลว
หากต้องการเน้นที่บริการที่ล้มเหลว ให้ใช้ตัวเลือก –failed
ระบบซีทีแอล รายการ-หน่วย--ล้มเหลว

ไม่มีไดรฟ์ที่ล้มเหลวบนคอมพิวเตอร์เครื่องนี้
หากคุณเห็นบริการใดๆ ที่ล้มเหลว ให้ใช้ตัวเลือก list-dependencies เพื่อตรวจสอบการอ้างอิงที่ไม่เป็นไปตามข้อกำหนด
ระบบซีทีแอล รายการ-การอ้างอิง sshd.service

การอ้างอิงจะมีวงกลมสีที่แสดงสถานะ อาจจะเป็น:
- วงกลมสีขาว: ไม่ได้ใช้งานหรืออยู่ระหว่างการบำรุงรักษา
- จุดสีเขียว: สินทรัพย์.
- ไวท์พอยต์: การปิดใช้งาน
- จุดสีแดง: ล้มเหลว หรือ มีข้อผิดพลาด.
ในการตรวจสอบว่ามีการเปิดใช้งานบริการเดียวหรือไม่ ให้ใช้คำสั่ง is-enabled และระบุชื่อไฟล์หน่วยของบริการ
ระบบซีทีแอล เอส-เปิดใช้งาน htg-example.service

การควบคุมบริการด้วย systemctl
การใช้ systemctl ในการจัดการบริการเป็นเรื่องง่ายมากและเป็นไปตามรูปแบบของคำสั่งที่เราได้เห็นมาจนถึงตอนนี้ ความแตกต่างที่ใหญ่ที่สุดคือคุณจะต้องใช้ sudo เพื่อทำการเปลี่ยนแปลงสถานะบริการ เราไม่ได้ทำเช่นนั้นจนถึงตอนนี้ เพราะเราเพียงรายงานสถานะของบริการเท่านั้น
หากต้องการเริ่มบริการ ให้ใช้คำสั่งเริ่มต้นตามด้วยชื่อบริการ
เหงื่อ ระบบซีทีแอล เริ่ม ตัวอย่าง htg.บริการ

หากทุกอย่างเป็นไปด้วยดี คุณจะถูกส่งกลับไปที่พรอมต์คำสั่งโดยไม่แจ้งเตือน หากคุณต้องการรับคำยืนยันเชิงบวก คุณสามารถยืนยันได้ด้วยคำสั่งสถานะ
เหงื่อ ระบบซีทีแอล สถานะ ตัวอย่าง htg.บริการ

การหยุดบริการนั้นง่ายเช่นเดียวกับการเริ่มต้นบริการ
เหงื่อ ระบบซีทีแอล หยุด ตัวอย่าง htg.บริการ

คุณสามารถเริ่มบริการใหม่ได้โดยไม่ต้องผ่านกระบวนการสองขั้นตอนของการหยุดแล้วเริ่มใหม่ เขา คำสั่งรีสตาร์ท ทำทุกอย่างเพื่อคุณ
เหงื่อ ระบบซีทีแอล เริ่มใหม่อีกครั้ง ตัวอย่าง htg.บริการ

หากคุณต้องการให้บริการเริ่มทำงานเมื่อบูต คุณจะต้องเปิดใช้งานเสียก่อน
เหงื่อ ระบบซีทีแอล เปิดใช้งาน ตัวอย่าง htg.บริการ

โปรดทราบว่าการดำเนินการนี้จะทำเครื่องหมายเฉพาะบริการให้เริ่มทำงานเมื่อบูตเท่านั้น ไม่ได้เริ่มการทำงานทันที หากนั่นคือสิ่งที่คุณต้องการ ฉันได้เพิ่มตัวเลือก –now ไว้แล้ว
เหงื่อ ระบบซีทีแอล เปิดใช้งาน --ตอนนี้ ตัวอย่าง htg.บริการ

เมื่อคุณไม่ต้องการบริการเพื่อเริ่มต้นเมื่อบูตอีกต่อไป ให้ปิดการใช้งาน
เหงื่อ ระบบซีทีแอล ปิดการใช้งาน ตัวอย่าง htg.บริการ

คุณสามารถใช้คำสั่ง journalctl ซึ่งเป็นส่วนหนึ่งของ systemd เพื่อค้นหารายการที่เกี่ยวข้องกับบริการของคุณ ตัวเลือก -u (หน่วย) ช่วยให้คุณระบุบริการที่คุณสนใจได้ ส่วนตัวเลือก -S (ตั้งแต่) ช่วยให้คุณแสดงรายการที่เกิดขึ้นตั้งแต่เวลาที่คุณระบุ
วารสารซีทีแอล -ส "08:00:00" -หรือ ตัวอย่าง htg.บริการ

เครื่องมือใดๆ ที่ช่วยคุณ รับข้อมูลเกี่ยวกับการดำเนินการ ส่วนประกอบภายในของการแจกจ่าย Linux ของคุณจะมีคุณค่าอย่างยิ่ง ทั้งในการบริหารจัดการในแต่ละวัน และในการแก้ไขปัญหาและการวินิจฉัยปัญหา คำสั่ง systemctl ไม่ใช่เครื่องมือตัวเดียว มันเหมือนกล่องเครื่องมือเฉพาะทางมากกว่า และคุ้มค่าแก่การทำความคุ้นเคย