เริ่มบริการใหม่โดยใช้คำสั่ง systemctl restart

Reim Brikar Him Doy Chi Kha Sang Systemctl Restart



ที่ ระบบ เป็นตัวจัดการบริการระบบที่ใช้กันอย่างแพร่หลายบน Linux เพื่อจัดการ ระบบ บริการ ระบบ มีการใช้ยูทิลิตี้บรรทัดคำสั่ง เครื่องมือนี้ยังใช้เพื่อรีสตาร์ทบริการ systemd ใด ๆ

บริการบน Linux ได้รับการจัดการผ่านไฟล์กำหนดค่า หากมีการแก้ไขไฟล์การกำหนดค่าของบริการ จำเป็นต้องเริ่มการรีสตาร์ทบริการเพื่อใช้การแก้ไข เมื่อเริ่มบริการใหม่ systemd จะประเมินไฟล์การกำหนดค่าอีกครั้งและใช้การแก้ไข

ในคู่มือนี้ ฉันจะอธิบายวิธีใช้ systemctl เพื่อรีสตาร์ทบริการใน Linux







บันทึก: คู่มือนี้ประกอบด้วยคำสั่งและคำแนะนำที่ดำเนินการบน Ubuntu 22.04 คำสั่งจะทำงานได้โดยไม่มีปัญหาใด ๆ กับการแจกแจงที่มาพร้อมกับตัวจัดการบริการ systemd



คำสั่ง systemctl รีสตาร์ท

ที่ เริ่มต้นใหม่ คำสั่งจะหยุดบริการและเริ่มต้นใหม่อีกครั้ง หากบริการหรือหน่วยไม่ทำงาน คำสั่งรีสตาร์ทจะเริ่มการทำงาน



คำสั่งรีสตาร์ทไม่ได้ลบกระบวนการที่เชื่อมโยงกับบริการ นำตัวอย่างของตัวอธิบายไฟล์ ซึ่งเป็นตัวระบุที่ไม่ใช่ค่าลบที่กำหนดโดยระบบปฏิบัติการให้กับไฟล์ที่เปิดโดยบริการ หากคุณเริ่มบริการใหม่ ตัวอธิบายไฟล์ที่เชื่อมโยงกับบริการนั้นจะยังคงอยู่ที่นั่นในระหว่างกระบวนการรีสตาร์ท





หากคุณต้องการล้างกระบวนการที่เชื่อมโยงกับบริการทั้งหมดออก คุณจะต้องดำเนินการอย่างชัดเจน หยุด การบริการและ เริ่ม มันอีกครั้ง

วิธีการเริ่มบริการใหม่

บน Linux คุณสามารถเริ่มบริการใหม่ได้โดยใช้ sudo systemctl เครื่องมือบรรทัดคำสั่งด้วย เริ่มต้นใหม่ ตัวเลือกและระบุชื่อ ไวยากรณ์ทั่วไปได้รับด้านล่าง:



ซูโดะ systemctl รีสตาร์ท [ ชื่อบริการ ]

คุณจะต้องการ ซูโดะ สิทธิ์ในการเริ่มบริการใหม่

ตัวอย่างเช่น เรามารีสตาร์ทกัน สช บริการ.

ซูโดะ systemctl รีสตาร์ท ssh.service

หากต้องการรีสตาร์ทบริการหลายรายการ ให้เพิ่มชื่อบริการแต่ละชื่อต่อท้าย เริ่มต้นใหม่ สั่งการด้วยช่องว่าง

ซูโดะ systemctl รีสตาร์ท ssh.service smbd.service

คำสั่งรีสตาร์ทอื่นๆ มีระบุไว้ในตารางด้านล่าง:

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

ในคำสั่งข้างต้น .บริการ ส่วนขยายเป็นทางเลือก

วิธีรีสตาร์ทบริการโดยอัตโนมัติ

บน Linux หากบริการล้มเหลว แสดงว่า ระบบ รีสตาร์ทตามค่าเริ่มต้น อย่างไรก็ตาม ในหลายกรณี อาจจำเป็นต้องปรับเปลี่ยนลักษณะการรีสตาร์ทบริการ ตัวอย่างเช่น เราอาจต้องมีการดำเนินการโดยเจ้าหน้าที่ในระหว่างกระบวนการตรวจแก้จุดบกพร่องของบริการแบบกำหนดเอง

ไฟล์หน่วย systemd หรือไฟล์บริการตั้งอยู่บน /etc/systemd/system หรือ /lib/systemd/system ขึ้นอยู่กับวิธีการสร้างบริการเป็นหลัก หากต้องการแสดงรายการไฟล์หน่วยบน Linux ให้ใช้คำสั่งต่อไปนี้:

LS / lib / ระบบ / ระบบ

คุณสามารถดูไฟล์การกำหนดค่าของบริการต่างๆ มาเปิดกัน ssh.บริการ ไฟล์โดยใช้ นาโน บรรณาธิการ

ซูโดะ นาโน / lib / ระบบ / ระบบ / ssh.บริการ

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

  • เลขที่
  • เสมอ
  • ในความสำเร็จ
  • เมื่อล้มเหลว
  • เมื่อผิดปกติ
  • เมื่อทำแท้ง
  • ในสุนัขเฝ้าบ้าน

ตัวเลือกอื่นในไฟล์บริการหน่วยคือ รีสตาร์ทวินาที ซึ่งใช้เพื่อระบุจำนวนวินาทีหลังจากที่บริการจะรีสตาร์ท

[ บริการ ]

เริ่มต้นใหม่ =เสมอ

รีสตาร์ทวินาที = 5

คำแนะนำเหล่านี้หมายความว่าบริการจะรีสตาร์ทเมื่อบู๊ตเครื่อง และหากถูกขัดจังหวะ บริการจะรีสตาร์ทหลังจากผ่านไป 5 วินาที

หลังจากแก้ไขการตั้งค่าแล้ว ให้ดำเนินการคำสั่งต่อไปนี้เพื่อใช้การเปลี่ยนแปลง

ซูโดะ systemctl รีโหลด daemon

การตั้งค่าที่สำคัญอื่น ๆ ที่ต้องคำนึงถึงคือ StartLimitIntervalSec และ เริ่มจำกัดการระเบิด . ตัวเลือกเหล่านี้มีประโยชน์ในการตั้งเวลาสูงสุดและความพยายามสูงสุดในการเริ่มบริการใหม่

[ หน่วย ]

StartLimitIntervalSec = 300

เริ่มจำกัดการระเบิด = 4

คำแนะนำข้างต้นบ่งชี้ว่า systemd จะหยุดการพยายามรีสตาร์ทบริการโดยอัตโนมัติ หากไม่เริ่มทำงานหลังจาก 300 วินาทีและลองใหม่ 4 ครั้ง

หากต้องการตรวจสอบว่าบริการรีสตาร์ทหลังจากผ่านไป 5 วินาทีหรือไม่ ให้ปิดบริการโดยใช้ PID ของบริการและ ฆ่า สั่งการ.

ซูโดะ ฆ่า -9 [ พีไอดี ]

หลังจากผ่านไป 5 วินาที บริการจะเริ่มต้นใหม่ ใช้ วารสาร คำสั่งให้ตรวจสอบสถานะของ ssh.บริการ .

วารสาร -ใน ssh.บริการ

วิธีการเริ่มบริการใหม่เมื่อบริการที่ขึ้นต่อกันเริ่มระบบใหม่

บน Linux บริการจำนวนมากต้องพึ่งพาอาศัยกัน และในทำนองเดียวกัน จำเป็นต้องรีสตาร์ทเมื่อบริการที่ต้องพึ่งพาถูกรีสตาร์ท

มีตัวเลือกที่แตกต่างกันสามตัวเลือกในไฟล์บริการหน่วยเพื่อเริ่มบริการใหม่ โดยเริ่มบริการที่ขึ้นต่อกันใหม่

  • เป็นส่วนหนึ่งของ
  • BindsTo
  • กำหนดให้มี

ตัวเลือกทั้งหมดเหล่านี้ทำงานเดียวกัน

มาดูตัวอย่างของ ssh.service ซึ่งขึ้นอยู่กับ apparmor.service โมดูลความปลอดภัยของ Linux เพื่อให้การเข้าถึงที่จำเป็น เพื่อแสดงรายการการขึ้นต่อกันของบริการใน Linux ให้ใช้ ระบบ กับ การขึ้นต่อกันของรายการ ชื่อคำสั่งและบริการ

รายการ systemctl-การพึ่งพา ssh.service

ดังนั้น หากคุณต้องการรีสตาร์ท ssh.service เมื่อคุณรีสตาร์ท apparmor.service คุณจะต้องรวมตัวเลือก PartOf, BindsTo หรือ Requires ไว้พร้อมกับชื่อบริการในส่วน [Unit] ของไฟล์ apparmor.service

เปิดไฟล์ apparmor.service

ซูโดะ นาโน / lib / ระบบ / ระบบ / apparmor.บริการ

เพิ่มบรรทัดต่อไปนี้ในส่วน [หน่วย]

เป็นส่วนหนึ่งของ =ssh.บริการ

บันทึกไฟล์และดำเนินการคำสั่ง daemon-reload

ซูโดะ systemctl daemon-รีโหลด

ตอนนี้ให้เริ่มต้นใหม่ ssh.บริการ แล้วตรวจสอบ apparmor.บริการ บันทึก.

คุณจะสังเกตได้ว่า apparmor.บริการ เริ่มต้นใหม่ในเวลาเดียวกัน ssh.บริการ เริ่มต้นใหม่

บทสรุป

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