at 18:00 shutdown now
และshutdown 18:00
พวกเขาเริ่มบริการเดียวกันหรือไม่ พวกเขาทำงานในลักษณะเดียวกันหรือไม่
at 18:00 shutdown now
และshutdown 18:00
พวกเขาเริ่มบริการเดียวกันหรือไม่ พวกเขาทำงานในลักษณะเดียวกันหรือไม่
คำตอบ:
at 18:00 shutdown now
สร้างงาน "at" ซึ่งดำเนินการในเวลาที่กำหนดโดยat
daemon หรือcron
daemon ขึ้นอยู่กับระบบของคุณ
shutdown 18:00
เริ่มกระบวนการในเปลือกของคุณที่รอจนกว่าจะถึงเวลาที่กำหนดแล้วทำการปิดระบบ คำสั่งนี้สามารถยกเลิกได้ถ้าเช่นเซสชันเชลล์ของคุณถูกยกเลิก
ผลลัพธ์สุทธิในกรณีส่วนใหญ่จะเหมือนกัน: ระบบจะปิดเวลา 18:00 น
ความแตกต่างอย่างหนึ่งคือถ้าคุณใช้at
งานจะถูกจัดเก็บและหากระบบปิดด้วยวิธีอื่นก่อน 18:00 นเมื่อบูตอีกครั้งงานจะยังคงรอให้ทำงาน หากเวลาผ่านไปแล้วการปิดระบบจะดำเนินการทันทีซึ่งอาจเป็นสิ่งที่ไม่คาดคิด
ความแตกต่างอีกอย่างก็คือshutdown 18:00
จะสร้าง/run/nologin
ไฟล์ 5 นาทีก่อนเวลาที่กำหนดเพื่อป้องกันไม่ให้ผู้อื่นลงชื่อเข้าใช้หลังจากนั้น ข้อความออกอากาศจะถูกส่งไปยังคำเตือนผู้ใช้ที่เข้าสู่ระบบว่าระบบกำลังจะปิด
คุณต้องคำนึงถึงความแตกต่างเหล่านี้เพื่อตัดสินใจว่าจะใช้อย่างไร
nohup
หรือdisown
หรืออะไรก็ตามถ้าเข้าออกได้ตามปกติฆ่าทำงานกระบวนการพื้นหลัง ระบบที่ต่างกันสามารถมีค่าเริ่มต้นต่างกัน (ฉันสมมติว่ามีsudo shutdown
กระบวนการที่ยังทำงานอยู่ แต่มันเป็นเพียงการส่งสัญญาณinit
เพื่อเริ่มตัวจับเวลาปิดซึ่งจริง ๆ แล้วอาจเป็นสิ่งที่เกิดขึ้น แต่ฉันไม่ได้ตรวจสอบเมื่อเร็ว ๆ นี้โอ้ แต่ @JdeBP มีให้ดูคำตอบนั้น )
at
เพื่อใช้งานผ่านcron
แทนที่จะเป็นatd
?
หากคุณมี CentOS 7 คุณมีระบบปฏิบัติการ systemd และคำตอบนั้นแตกต่างกัน
at 18:00 shutdown now
ยังคงกำหนดเวลาผ่านat
ระบบย่อย แต่shutdown
คำสั่งนั้นรวมถึงคำสั่งที่คุณเรียกใช้โดยตรงshutdown 18:00
นั้นแตกต่างกัน มันเป็นsystemctl
โปรแกรม ของ systemd systemctl
ทำสิ่งที่แตกต่าง
ก่อนอื่นsystemctl
ส่งคำขอปิดระบบตามกำหนดเวลาเพื่อประมวลผลโดยdæmonซึ่งค่อนข้างคล้ายกับในat
กรณี นี่เป็น systemd dæmon แต่โดยเฉพาะlogind
( systemd-shutdownd
dæmonถูกลบออกจาก systemd ในเดือนพฤษภาคม 2558 ซึ่งการเปลี่ยนแปลงมีตั้งแต่ผ่านไปจนถึงรุ่นย่อยรุ่นที่ใหม่กว่าของ CentOS 7) ไม่ใช่at
ระบบย่อย systemctl
พูดโปรโตคอลภายในไปยังนายหน้า (ทั้งระบบ) logind
แบบบัสซึ่งในทางกลับกันสื่อสารกับ
เช่นเดียวกับในat
กรณีที่ไม่มีshutdown
กระบวนการนั่งนับถอยหลังและวางไข่wall
ข้อความ ดังนั้นหนึ่งสามารถออกจากระบบและสิ่งนี้จะไม่ส่งผลกระทบต่อตารางเวลาและการยกเลิกไม่ง่ายเหมือนเพียงขัดจังหวะ / ฆ่ากระบวนการพื้นหน้าของเซสชันการเข้าสู่ระบบ at
เช่นเดียวกับ
มีคงมีข้อความแตกต่างจากในat
กรณี logind
แต่พวกเขาจะออกโดย นอกจากนี้ยังแตกต่างจากat
กรณีงานที่กำหนดไม่ได้ยังคงมีอยู่ทั่วเตะของระบบเพื่อปิดจริงยกเลิกการกำหนดหนึ่ง มีเป็นแฟ้มในระบบแฟ้ม แต่ก็อยู่ภายใต้/run/systemd/shutdown
ซึ่งเป็นพื้นที่เก็บข้อมูลไม่ถาวร
ความแตกต่างเพิ่มเติมคือสามารถมีการปิดระบบที่กำหนดเวลาหนึ่งครั้งเท่านั้นในขณะที่หนึ่งสามารถส่งหลายat
งานและชุดนโยบายจะใช้กฎเพื่อshutdown
ทำงานในบริบทที่ไม่ใช่การเข้าสู่ระบบเซสชั่นเป็นat
งานที่แตกต่างกับกฎที่shutdown
ใช้ในการทำงาน บริบทเซสชันการเข้าสู่ระบบ หลังอาจจะมีบุตรมากขึ้นช่วยให้ (พูด) ความด้อยโอกาสผู้ใช้ที่ถูกบันทึกไว้ในเซสชั่นที่ใช้งานเข้าสู่ระบบเพื่อปิดระบบ
shutdown 18:00
เริ่มกระบวนการในเชลล์ของคุณที่รอ" ถ้าคุณออกจากระบบก่อนหน้า