ฉันไม่แนะนำให้ทำสิ่งต่อไปนี้หากคุณไม่ได้ถูกบังคับด้วยเหตุผลพิเศษจริง ๆ :
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
มันหยาบโหดร้ายและถือได้ว่า เทียบเท่ากับการถอดปลั๊กสายไฟ ...
วิธีที่ถูกต้องคือshutdown -h now
มีsudo
ก่อนเมื่อมีความจำเป็น
บางทีฉันควรบอกว่าวิธีที่ถูกต้องตามกฎหมาย ; ดูด้านล่างหรือดีกว่าtl; dr
บางคำเพิ่มเติมหรือที่รู้จักกันในเรื่องตอนที่ 1
ในตอนแรกคือผู้ประทับจิตและมันจะเป็นจนถึงที่สุด
ทั้งลินุกซ์ขึ้นจากการดูแลความรักของinit [ 1 ] [ 2 ] อย่างไรก็ตามและไม่ได้โดยไม่มีจำนวนหนึ่งของมักขะมีเวลาอยู่ในที่ที่ดีพระเจ้าผู้ใช้รากสามารถทรยศต่อความรักนี้และก็kill
init กับเถียงไม่ได้ ( -9
) การสั่งซื้อ
( หนังสือมารยาทกำหนดไว้สำหรับการนับดุ๊กและผู้ใช้ marquisesจะเรียกก่อนsudo
)
จากนั้นพ่อมดบางคนก็สร้างเสน่ห์ในการปกป้องผู้ประทับจิต (จากหนังสือ man 2 init
)
สัญญาณเดียวที่สามารถส่งไปยังกระบวนการ ID 1 ซึ่งเป็นกระบวนการเริ่มต้นคือสัญญาณที่ init ได้ติดตั้งตัวจัดการสัญญาณอย่างชัดเจน สิ่งนี้ทำเพื่อให้มั่นใจว่าระบบจะไม่ถูกลบโดยไม่ตั้งใจ
(สายลับของเรารายงาน[ U1 ]ที่ init จะจัดการ 1 HUP 6 ABRT 11 SEGV 15 ระยะ 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
ดังนั้นผู้ใช้รูทลอร์ดที่ดีจะ เรียนรู้ข่าวและเปลี่ยนคำสั่งในkill -ABRT 1
หรือkill -SEGV 1
ที่มักจะสร้าง ความตื่นตระหนกเคอร์เนลและการถ่ายโอนข้อมูลหลัก
มันทำงานได้เพราะinitเป็นกระบวนการแรกที่ทำงานและใช้เวลาจำนวน PID 1 [ 2b ]
สิ่งนี้ไม่ปลอดภัยไม่ฉลาดและคุณรู้สึกว่าเป็นลางบอกเหตุที่ไม่ดีและคำสาป แต่ถ้าคุณไม่สามารถจับมือและถอดปลั๊ก ...
The curse : มันจะไม่เขียนลงใน log มันจะไม่ฆ่าโพรเซสทั้งหมด & รอการสิ้นสุดมันจะไม่เขียนบน HDD อย่างถูกต้องอัพเดต inodes ไม่ว่าจะ unmount ระบบไฟล์หรือไม่ อย่าคิดเลยว่ามันจะช่วยประหยัดตัวเลือกของหน้าต่างกราฟิกและประวัติเชลล์และอื่น ๆ อีกมากมายนอกเหนือจากจินตนาการของเรา ... เนื่องจากเรากล่าวว่าการถอดปลั๊กสายไฟหรือแบตเตอรี่ถ้าเป็นแล็ปท็อป
วิธีที่ถูกต้อง
"ไม่ใช่ขุนนาง, ขุนนาง, ไม่ใช่ขุนนาง, ผู้ได้รับการแต่งตั้ง tuo da gloriam.", คำขวัญของอัศวินนักรบ
วิธีที่ถูกต้องตามกฎหมายคือการใช้shutdown
[ 3 ]
sudo shutdown -h now
การปิดระบบจัดให้มีระบบที่จะนำมาลงอย่างปลอดภัย ผู้ใช้ที่เข้าสู่ระบบทั้งหมดจะได้รับแจ้งว่าระบบกำลังจะลงและ ...
แต่-h now
พวกเขาจะไม่มีเวลามากพอที่จะทำ ...
บางคำเพิ่มเติมหรือที่รู้จักกันในเรื่องราวตอนที่ II
กาลครั้งหนึ่งมีบางขั้นตอนตรรกะที่รู้สึกได้จากท้องฟ้าเหนือคนยูนิกซ์:
เมื่อกระบวนการของระบบถูกฆ่าและระบบไฟล์ถูกถอนการติดตั้งระบบจะหยุดทำงาน / ปิดเครื่องหรือบูตเครื่องใหม่โดยอัตโนมัติ สิ่งนี้จะทำโดยใช้คำสั่ง halt หรือ reboot ซึ่งซิงค์การเปลี่ยนแปลงกับดิสก์จากนั้นทำการหยุด / ปิดเครื่องจริงหรือรีบูต [ 4 ]
อันที่จริงในปัจจุบันเราไม่ไว้วางใจใด ๆ เพิ่มเติมในการดำรงอยู่ของทั้งสามมอยเร[ 5 ] ของโลกลินุกซ์ , reboot
, poweroff
และhalt
[ 6 ]ที่: วิทยาศาสตร์สมัยใหม่ของls -l $(which poweroff halt reboot)
และเป็นหนึ่งในman reboot
กระจายไฟใหม่ในยุคมืดนี้และเผยให้เห็นเรา มีคำสั่งจริงเพียงคำเดียวเท่านั้นที่แยกวิเคราะห์ตัวเลือกทั้งหมดเพื่อให้เรามีอิสระที่จะขอการกระทำที่ขัดแย้งกับชื่อคำสั่งของพวกเขา! ( halt -p
หรือreboot -p
สำหรับpoweroff
,shutdown -r
สำหรับreboot
... )
ตอนนี้ทุกคนดูเหมือนจะมีความชัดเจนและสะดวกสบายสำหรับทุกข่าวลือเรียกร้อง[ 7 ]ว่าในนรกของชุดเครื่องมือ systemd [ 8 ]การปฏิวัติที่ได้ดำเนินการออกไม่รู้ทั้งในทางตรงข้าม ขอบคุณกองทัพด้านหลังที่เข้ากันได้กับ shimsเราไม่ได้สังเกตเลยว่ารีบูต, poweroff, หยุด[ 6 ]และแม้แต่ telinit [ 9 ]และการปิดระบบ[ 3 ]ล้วนอยู่ในขอบเขตของระบบใหม่ของกษัตริย์แล้ว[ 10 ]. โปรดฟังเรื่องราวทั้งหมดจากเสียงต้นฉบับของ JdeBP The Bard [ 9 ]เพราะฉันไม่มีลมหายใจ
ถ้าคุณเป็นสาวกของลัทธิ Ubuntu คุณอาจจะยังคงตระหนักถึงในขณะที่ของการเรียกร้องทุกคน[ 11 ]
ตรงกลางของโลกhalt -f
, init
, telinit
, systemctl
กำลังหาวิธีการแก้ปัญหาได้เร็วกว่าหนึ่งที่ถูกต้องเช่นเดียวกัน แต่ฉลาด
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
ว่าคุณอยู่ภายใต้ systemd หรือไม่คุณควรจะสามารถหยุดคอมพิวเตอร์โดยไม่ต้องเรียกใช้ขั้นตอน shudown ที่ถูกต้องทั้งหมด (และรวดเร็วยิ่งขึ้น):
halt -f
: ระบุตัวเลือก-f
(ทราบว่าคุณต้องการ-f
ที่จะหลีกเลี่ยงขั้นตอนการปิดเครื่อง) กับคำสั่งดังกล่าวด้วยหรือแม้กระทั่งกับsudo poweroff -f
sudo reboot -f -h
แน่นอนเราสามารถอ่านจากman reboot
(และเทียบเท่า) เกี่ยวกับความจำเป็นในการระบุตัวเลือก-f
เพื่อหลีกเลี่ยงการเรียกปิด:
เมื่อเรียกว่ามี--forceหรือเมื่ออยู่ในระดับการทำงาน 0 หรือ 6 เครื่องมือนี้เรียกรีบูต (2) สายระบบตัวเอง (ที่มีข้อโต้แย้ง REBOOTCOMMAND ผ่าน) และโดยตรงเรียบระบบ
มิฉะนั้นจะเรียกใช้เครื่องมือการปิด (8)พร้อมอาร์กิวเมนต์ที่เหมาะสมโดยไม่ต้องผ่านอาร์กิวเมนต์ REBOOTCOMMAND
-f, - บังคับ
ไม่เรียกใช้การปิด (8) และดำเนินการตามจริงที่คุณคาดหวังจากชื่อแทน
ยิ่งกว่านั้นคุณสามารถใช้telinit
[ 2b ] (หรือinit
โดยตรง)
sudo telinit 0 # or 6
เพื่อบอกให้ init เปลี่ยน runlevel ... แต่ถ้าเป็นเช่นนั้นทำไมไม่ฆ่ามันโดยตรง?
ภายใต้ systemd คุณสามารถใช้ตัวเลือกคู่ที่ไม่ฉลาด --force --force
systemctl --force --force poweroff
อ่านจากคู่มือ systemctl [ 10 ]
-f, - บังคับ
เมื่อใช้กับเปิดใช้งานเขียนทับ symlink ที่ขัดแย้งกันใด ๆ ที่มีอยู่
เมื่อใช้กับhalt
,poweroff
reboot
หรือ, kexec ให้เรียกใช้งานการดำเนินการที่เลือกโดยไม่ต้องปิดเครื่องทั้งหมด อย่างไรก็ตามกระบวนการทั้งหมดจะถูกบังคับให้ใช้งานไม่ได้และระบบไฟล์ทั้งหมดจะถูกถอดออกหรือประกอบใหม่เป็นแบบอ่านอย่างเดียว นี่คือตัวเลือกที่รุนแรง แต่ค่อนข้างปลอดภัยเพื่อขอให้รีบูตทันที หาก --force ถูกระบุสองครั้งสำหรับการดำเนินการเหล่านี้จะถูกดำเนินการทันทีโดยไม่ยกเลิกกระบวนการใด ๆ หรือยกเลิกการต่อเชื่อมระบบไฟล์ใด ๆ คำเตือน: การระบุ - บังคับสองครั้งกับการดำเนินการใด ๆ เหล่านี้อาจทำให้ข้อมูลสูญหาย
ps> รับแรงบันดาลใจเกี่ยวกับการแปรเปลี่ยนจากหาง JdeBP กวี[ 7 ]