ไม่มีวิธีที่ดีกว่าในการรีสตาร์ทเซิร์ฟเวอร์ของคุณโดยใช้สิ่งอื่นนอกเหนือจากคำสั่งเหล่านั้น
- การปิดระบบเป็นวิธีที่พบได้บ่อยที่สุดในการหยุดระบบของคุณ การเพิ่มอาร์กิวเมนต์
-r
และเวลาที่ระบุ (หรือ ' now
') จะรีบูตระบบของคุณแทนการหยุดชะงักหลังจากลำดับการปิดระบบ
- rebootเป็น wrapper round shutdown ซึ่งจะมีการบำรุงรักษาฮาร์ดดิสก์ (การซิงค์และ / หรือการเข้าสู่โหมดสแตนด์บายและไม่เกี่ยวข้องกัน)
- เวอร์ชั่นใหม่ของ
reboot
(> 2.74) จะเริ่มต้นshutdown
หากไม่อยู่ใน runlevel 0 หรือ 6
- สคริปต์ init ส่วนใหญ่เรียกหยุดเพื่อให้เข้าสู่ระบบในutmp
การแจกแจงสมัยใหม่จะมีงานทั้งหมดครอบคลุมโดยไม่คำนึงถึงคำสั่งที่คุณใช้ โดยพื้นฐานแล้วพวกเขาทั้งหมดเริ่มต้นการปิดระบบของสคริปต์SysV (CentOS <7) หรือsystemd (CentOS> = 7) สคริปต์ของคุณ (ฉันจะเรียกพวกเขาว่าสคริปต์ init เพื่อความสะดวกในการอ่าน)
การปิดระบบโดยใช้สคริปต์เริ่มต้นทีละขั้นตอนจะหยุดการให้บริการทั้งหมดของคุณที่ลงทะเบียนภายใต้runlevel 'S' สคริปต์เริ่มต้นแต่ละรายการอาจมีการหมดเวลาเช่นสคริปต์เริ่มต้น MySQL ใน CentOS เมื่ออาร์กิวเมนต์หยุดถูกกำหนดและ daemon จะไม่ถูกปิดในเวลาที่เหมาะสมสคริปต์จะหยุดและออกจากการให้ความล้มเหลว กระบวนการปิดระบบจะดำเนินต่อไปราวกับว่าไม่มีอะไรผิดปกติใช้เวลานานขึ้นเล็กน้อยและอาจพิมพ์คำเตือน ในตอนท้ายเมื่อสคริปต์ init ทั้งหมดจะดำเนินการหลีกเลี่ยงไม่ได้ที่จะเกิดขึ้น: กระบวนการทั้งหมดยังคงทำงานจะได้รับSIGTERM
สัญญาณและหลังจากนั้นไม่กี่วินาที (2 หรือ 5) SIGKILL
ซึ่งเป็น สิ่งนี้จะทำความสะอาดส่วนที่เหลือก่อนที่จะทำการเรียกACPIเพื่อรีบูตหรือปิดระบบของคุณจริงๆ
มีข้อยกเว้นอย่างหนึ่งคือการใช้reboot
คำสั่งพร้อมกับ-f
ตัวเลือกซึ่งจะเป็นการข้ามการเรียกใช้งานสคริปต์ init และจะรีบูตระบบโดยตรง
คุณจะดีกว่าที่จะแก้ไขสาเหตุของความกังวลของคุณ: MySQL ไม่ได้ปิดตัวลงอย่างถูกต้อง
บ่อยครั้งเกิดจากภาระงานจำนวนมากที่ต้องทำก่อนที่ daemon จะสามารถออกได้อย่างปลอดภัย ฉันเคยมีอินสแตนซ์ MySQL ที่มี 30,000 ตารางที่ใช้เวลามากกว่าหนึ่งชั่วโมงในการออก พบปัญหาที่คล้ายกันกับระบบที่ใช้บัฟเฟอร์ขนาดใหญ่และความพร้อมใช้งาน I / O แบบกระจาย
reboot
เป็นนามแฝงของshutdown -r
... ดังนั้น ... ใช่