วิธีการปิดหรือรีบูตเซิร์ฟเวอร์ Unix / Linux อย่างถูกต้อง


11

วิธีที่ถูกต้องในการปิดเซิร์ฟเวอร์ Unix / Linux คืออะไร?

จาก googling ของฉันฉันได้เรียนรู้ (หวังว่า) ต่อไปนี้:

ปิดเครื่อง : ฉันควรใช้สิ่งนี้กับพารามิเตอร์ -h เพื่อหยุดหรือพารามิเตอร์ -r เพื่อรีบูต

halt : หยุดเครื่องคอมพิวเตอร์ (หยุดโปรเซสเซอร์หรือไม่นี่เป็นการปิดเครื่องคอมพิวเตอร์หรือไม่) ฉันคิดว่านี่จะเรียกการปิดถ้าไม่ได้ที่ init0 มิฉะนั้นจะหยุด

รีบูท : หากไม่ใช่ที่ init6 ให้ทำการปิดการโทรมิฉะนั้นจะรีบูตคอมพิวเตอร์

หากสิ่งที่ถูกต้องแล้วสิ่งเดียวที่ฉันไม่สามารถคิดออกได้คือสิ่งที่ 'หยุด' อย่างแน่นอน มันเพิ่งหยุดโปรเซสเซอร์ แต่ไม่ได้ปิดคอมพิวเตอร์จริง ๆ หรือไม่? ฉันจะ "ปิดเครื่อง" คอมพิวเตอร์ได้อย่างไร

ขอบคุณ

คำตอบ:


13

shutdown -h nowจะปิดคอมพิวเตอร์ด้วยระบบส่วนใหญ่ แต่จะเหลือไว้สำหรับการใช้ ใช้-Pเพื่อเปิดปิดอย่างแน่นอนและ-Hหยุดอย่างแน่นอน นี่เป็นวิธีที่ฉันแนะนำให้ปิดระบบ มันจะเรียกใช้สคริปต์ที่เหมาะสมทั้งหมด

haltโดยไม่-fเพียงแค่จะเรียกการปิดเครื่องด้านบนและเพื่อจะrebootพวกเขาเป็นเพียงนามแฝง


ตอนนี้ฉันเป็นแฟนตัวยงของ / sbin / shutdown -h (-r) ใช้ "หยุด" ฉันกลัวเสมอ
RateControl

1
Thoreau เป็นจุดที่ดีอีกประการหนึ่ง: คุณควรพยายามสร้างนิสัยในการเรียกคำสั่งของระบบที่สำคัญด้วยเส้นทางที่ชัดเจน (เช่น / sbin / shutdown) สิ่งนี้อาจช่วยคุณได้ถ้าระบบของคุณถูกบุกรุกและคุณไม่ทราบ
Ryan Fisher

1
mystikphish: เห็นด้วยจะยอมรับนิสัยนั้น แม้ว่าเขาจะมีจุดดี แต่ฉันไม่รู้ว่าฉันจะเชื่อถือคำแนะนำของเขาเกี่ยวกับไอทีโดยทั่วไปหรือไม่ถ้าเขาใช้เวลาทั้งหมดของเขาในห้องโดยสารที่ไม่มีไฟฟ้า
Kyle Brandt

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

@ ไคล์แบรนด์ดี
โจเซฟ Kern

3

บน Linux ฉันใช้งานมาตลอดrebootและhaltแม้ว่าฉันจะรู้จักคนที่พบว่าhaltน่ากลัว halt(8)เรียงลำดับของบอกทำไม:

ภายใต้ sysvinit รุ่นเก่ารีบูตและหยุดไม่ควรถูกเรียกโดยตรง จากรีลีส 2.74 ในการหยุดและรีบูตเรียกปิดระบบ (8) หากระบบไม่ได้อยู่ใน runlevel 0 หรือ 6 ซึ่งหมายความว่าหากการหยุดหรือรีบูตไม่สามารถหา runlevel ปัจจุบันได้ (ตัวอย่างเช่นเมื่อ / var / run / utmp ไม่ ถูกกำหนดค่าเริ่มต้นอย่างถูกต้อง) การปิดระบบจะถูกเรียกใช้ซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ ใช้แฟล็ก -f หากคุณต้องการหยุดอย่างหนักหรือรีบูต

sysvinit 2.74 ลงวันที่ 17 มี.ค. 2541 21:53 :)

เกี่ยวกับคำถามของคุณวิธีการปิดไฟคุณสามารถใช้หรือpoweroff halt -pส่วนใหญ่ระบบ Linux ที่ผ่านมาดูเหมือนจะมีอำนาจในการลงเพียงhaltหรือshutdown -hยัง


Solaris ยังคงอยู่ในฝูงชนที่ 'หยุด' ทำสิ่งที่น่ากลัว
Karl Katzke

3

ฉันใช้halt- พารามิเตอร์น้อยกว่าที่จะจำ

บางคนได้พัฒนามอลลี่การ์ดเสมือนเพื่อให้แน่ใจว่าเซิร์ฟเวอร์จะไม่หยุดทำงานผิดพลาดโดยไม่ได้ตั้งใจ มันได้ช่วยชีวิตฉันไว้ไม่กี่ครั้ง มันบรรจุอยู่molly-guardใน Ubuntu


1
ในกรณีที่คนอื่นสงสัยว่า molly-guard ทำงานอย่างไรต่อไปนี้เป็นตัวอย่าง: guillaume.segu.in/blog/home/118/…
Marie Fischer

1

โดยทั่วไปฉันใช้ (ในฐานะผู้ใช้รูทแน่นอน):

 init 0

เพื่อนำระบบเข้าสู่สถานะปิด การดำเนินการนี้เป็นการสคริปต์แบบ rundown

 init 6

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


1
halt จะเรียกใช้ initscripts ทั้งหมดด้วยพารามิเตอร์ "stop"
hayalci

1
ระบบไม่หยุดทำงานในกรณีใด
asjo

2
จากความคิดเห็นสองข้อข้างต้นฉันได้แก้ไขบันทึกย่อของฉันเพื่อลบความคิดเห็นที่หยุดชั่วคราว อย่างไรก็ตามฉันยืนยันใน FreeBSD 7.2 และ Solaris 10 5/2009 x86 ที่ดำเนินการคำสั่ง halt แบบง่าย ๆ ในทั้งสองระบบนี้จะไม่เกี่ยวข้องกับลำดับ rundown มาตรฐาน อย่างไรก็ตามใน Centos 5.3, OpenSUSe 11.1 และ Fedora 11 คำสั่ง halt DO มีส่วนร่วมในลำดับ rundown มาตรฐานและทำหน้าที่โดยทั่วไปเช่น init 0. FYI ....
mdpc

0

น่าสังเกตที่นี่:

Solaris ต้องการ "shutdown -y -i5 -g0" เพื่อปิดระบบหรือ "shutdown -y -i6 -g0" เพื่อรีบูต ควรหยุดใช้หรือหยุดการทำงานบน Solaris ก็ต่อเมื่อยอมรับได้ว่าจะไม่ให้คำเตือนหรือช่วงเวลาผ่อนผันก่อนที่คุณจะเริ่มปิดสิ่งต่าง ๆ ... สิ่งนี้สามารถเล่นได้อย่างเสียหายกับระบบดิสก์ถ้าคุณไม่เลิกเมานท์ก่อนปิด 'ทราบ?

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

ตัวอย่างเช่นอย่าพิมพ์ 'killall' ใน solaris ในขณะที่นั่นเป็นคำสั่งทั่วไปใน linux แม้ว่า 'pkill' จะทำงานเหมือนกันทั้งสองอย่าง


0

หากต้องการปิดเครื่องทันทีให้พิมพ์:

shutdown -h now 

และเพื่อปิดมันทันทีและรีสตาร์ทประเภท:

shutdown -r now

1
ฉันพบว่านี่เป็นคำตอบที่ดีที่สุด แต่ไม่แน่ใจว่าทำไม downvote
เพรา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.