Cara mematikan atau me-reboot server Unix / Linux dengan benar

11

Apa cara yang benar untuk mematikan server Unix / Linux?

Dari googling saya, saya telah belajar (semoga) yang berikut ini:

shutdown : Saya harus menggunakan ini, dengan parameter -h untuk berhenti, atau parameter -r untuk reboot

menghentikan : menghentikan komputer (menghentikan prosesor? apakah ini mematikan daya komputer secara fisik?). Saya pikir ini akan memanggil shutdown jika tidak di init0, jika tidak hentikan saja.

reboot : jika tidak di init6, panggilan shutdown, jika tidak hanya reboot komputer.

jika semua itu benar, maka satu-satunya hal yang saya tidak tahu adalah apa yang sebenarnya 'berhenti'. Apakah itu hanya menghentikan prosesor tetapi tidak mematikan komputer secara fisik? Bagaimana cara "mematikan komputer"?

Terima kasih

Tony Stark
sumber

Jawaban:

13

shutdown -h nowakan mematikan komputer dengan sebagian besar sistem, tetapi terserah implementasi. Gunakan -Puntuk mematikan poweroff pasti dan -Hberhenti pasti. Ini adalah metode yang saya sarankan untuk mematikan sistem. Ini akan menjalankan semua skrip yang tepat.

halttanpa -fhanya akan memanggil shutdown di atas dan begitu juga reboot, mereka pada dasarnya hanya alias.

Kyle Brandt
sumber
Saya penggemar berat / sbin / shutdown -h (-r) sekarang. menggunakan "berhenti" selalu membuatku takut.
RateControl
1
Thoreau membuat poin bagus lainnya: Anda harus mencoba membiasakan diri memanggil perintah sistem penting dengan jalur eksplisit, (misalnya / sbin / shutdown). Ini mungkin menyelamatkan Anda jika sistem Anda pernah dikompromikan dan Anda tidak menyadarinya.
Ryan Fisher
1
mystikphish: Setuju, akan mengadopsi kebiasaan itu. Meskipun dia memiliki poin bagus, saya tidak tahu apakah saya akan mempercayai sarannya pada IT secara umum jika dia menghabiskan seluruh waktunya di kabin satu kamar tanpa listrik.
Kyle Brandt
Ini akan menjadi kompromi miskin jika tidak mengubah executable di jalur yang berurat berakar di jari-jari Anda meskipun ...
asjo
@Kyle Brandt, bagus.
Joseph Kern
3

Di Linux, saya selalu menggunakan rebootdan halt, meskipun saya juga tahu orang-orang yang menemukan haltmenakutkan. halt(8)semacam mengatakan mengapa:

Di bawah rilis sysvinit yang lebih lama, reboot dan stop tidak boleh dipanggil secara langsung. Dari rilis 2.74 pada halt dan reboot aktifkan shutdown (8) jika sistem tidak dalam runlevel 0 atau 6. Ini berarti bahwa jika berhenti atau reboot tidak dapat mengetahui runlevel saat ini (misalnya, ketika / var / run / utmp belum telah diinisialisasi dengan benar) shutdown akan dipanggil, yang mungkin bukan yang Anda inginkan. Gunakan flag -f jika Anda ingin berhenti atau reboot dengan keras.

sysvinit 2.74 tertanggal 17-Mar-1998 21:53. :)

Mengenai pertanyaan Anda cara mematikan, Anda dapat menggunakan poweroffatau halt -p. Sebagian besar sistem Linux baru-baru ini tampaknya mematikan hanya haltatau shutdown -hjuga.

Marie Fischer
sumber
Solaris masih dalam kerumunan di mana 'berhenti' melakukan hal-hal yang menakutkan.
Karl Katzke
3

Saya menggunakan halt- lebih sedikit parameter untuk diingat.

Seseorang telah mengembangkan Molly Guard virtual untuk memastikan seseorang tidak menghentikan server yang salah secara tidak sengaja. Itu telah menyelamatkan saya pada beberapa kesempatan. Itu dikemas di molly-guardUbuntu.

Morten Siebuhr
sumber
1
Jika ada orang lain yang bertanya-tanya bagaimana molly-guard bekerja, berikut ini sebuah contoh: guillaume.segu.in/blog/home/118/…
Marie Fischer
1

Saya biasanya menggunakan (sebagai pengguna root tentu saja):

 init 0

untuk membawa sistem ke kondisi mati. Ini melakukan scripting kumuh.

 init 6

untuk menjatuhkan sistem dan membuatnya reboot secara otomatis. Ini juga melakukan scripting kumuh.

mdpc
sumber
1
berhenti juga akan menjalankan semua skrip init dengan parameter "stop".
hayalci
1
Pada sistem apa berhenti tidak mematikan dengan baik?
asjo
2
Berdasarkan dua komentar di atas saya mengedit catatan saya untuk menghapus komentar berhenti saya. Namun, saya memverifikasi pada FreeBSD 7.2, dan Solaris 10 5/2009 x86 mengeksekusi perintah berhenti sederhana pada kedua sistem ini TIDAK akan melibatkan urutan jadwal standar. Namun, pada Centos 5.3, OpenSUSe 11.1, dan Fedora 11 perintah penghentian TIDAK melibatkan urutan jadwal standar dan bertindak pada dasarnya seperti init 0. FYI ....
mdpc
0

Perlu dicatat di sini:

Solaris membutuhkan "shutdown -y -i5 -g0" untuk mematikan, atau "shutdown -y -i6 -g0" untuk reboot. Hentikan atau Booting ulang pada Solaris hanya boleh digunakan jika diperbolehkan untuk tidak memberikan peringatan atau tenggang waktu sebelum Anda mulai mematikan segalanya ... ini bisa menjadi semacam kekacauan dengan sistem disk jika Anda tidak meng-unmountnya sebelum mematikan, y 'tahu?

Cara terbaik untuk mengadopsi prosedur yang terbaik untuk sistem operasi yang Anda sentuh setiap hari, sehingga Anda tidak sengaja merusak sesuatu yang buruk pada pukul 2 pagi dengan jari-jari Anda secara otomatis.

Misalnya, jangan pernah mengetikkan 'killall' di solaris, padahal itu perintah yang cukup umum di linux. 'pkill' bekerja sama pada keduanya.

Karl Katzke
sumber
0

Untuk segera mematikannya, ketik:

shutdown -h now 

dan untuk segera mematikannya dan mulai ulang ketik:

shutdown -r now
pengguna3571127
sumber
1
Saya menemukan ini jawaban terbaik, tidak yakin mengapa downvoted.
Basil A