Perbedaan antara "berhenti" dan "mati sekarang"?

30

Ubuntu menggunakan remote sudo -S -p '' haltuntuk mematikan dan tidak bekerja sampai akhir. membiarkan monitor menyala dengan pesan

sekarang akan berhenti

[22225.11163] dihentikan

Apa perbedaan antara sudo -S -p " halt dan sudo shutdown now?

nkvnkv
sumber

Jawaban:

41

The -Sdan -pswitch untuk sudotidak memiliki kepentingan dalam kasus ini. Inilah yang mereka lakukan, masing-masing.

The -Sberalih menyebabkan sudountuk membaca password dari STDIN. Ini memungkinkan, misalnya, kata sandi untuk disalurkan sudomelalui echoatau cat.

The -pswitch memungkinkan Anda untuk menimpa password default cepat dan menggunakan satu kustom, atau tidak sama sekali.


Perbedaan penting adalah dalam dua perintah yang dikeluarkan oleh sudo.

The haltperintah, jika digunakan tanpa -pswitch, hanya menghentikan OS dan berhenti semua CPU. Setelah sistem terhenti dengan bersih, pengguna dapat dengan aman menekan tombol Power di komputernya secara manual.

Perintah poweroff,, shutdown -h nowdan halt -psemua melakukan hal yang sama seperti haltsendirian, sambil juga mengirim perintah ACPI untuk memberi sinyal unit catu daya untuk melepaskan daya utama. Ini mencegah Anda dari keharusan untuk secara fisik menekan tombol Power di komputer Anda.

TuanCharlo
sumber
9
shutdown -h nowtidak serta merta mematikan daya. Sesuai man shutdown, itu tergantung pada sistem. shutdown -H now(perhatikan tutup pada H) adalah yang dijamin setara denganhalt
MestreLion
11

haltbukan shutdown, itu adalah perintah yang berbeda. Yang pertama tidak mematikan daya, kecuali -popsi digunakan

Dari manual ( man halt): "-p, --poweroff: Menginstruksikan perintah berhenti untuk bukan berperilaku sebagai poweroff."

Dan, dalam kasus Anda, -pitu tidak digunakan dalam haltperintah, maka komputer Anda tidak dimatikan.

Jangan bingung -p ini dengan yang dari sudo, ini parameter yang berbeda untuk perintah yang berbeda. Dari man sudo:

  • -S Opsi -S (stdin) menyebabkan sudo membaca kata sandi dari input standar dan bukan perangkat terminal. Kata sandi harus diikuti oleh karakter baris baru.
  • -p prompt Opsi -p (prompt) memungkinkan Anda untuk mengganti prompt kata sandi default dan menggunakan yang khusus.

Dalam kasus Anda, promptkosong (tidak ada pesan yang ditampilkan untuk sudo ketika menanyakan kata sandi), dan -S membuat sudo menerima kata sandi root vi stdin (sehingga kata sandi dapat diberikan menggunakan pipa dan pengalihan dari perintah lain alih-alih diketik)

MestreLion
sumber
7

Ada jawaban yang bagus di situs Unix SE tentang masalah shutdownvs halt: Apa perbedaan antara perintah Berhenti dan Matikan?

Adapun sudo -S -p '' bagian, ini akan menghapus pesan tentang menanyakan kata sandi di terminal (Anda masih memasukkan kata sandi Anda)

Misalnya menjalankan sudo <some_command>akan memberikan output ini sebelum menjalankan perintah ini:

kata sandi [sudo] untuk:

Tetapi berlari sudo -S -p '' <some_command>akan menyembunyikan pesan itu.

Bahkan, pesan yang Anda masukkan dalam tanda kutip, menggantikan pesan sebelumnya.

Silakan dan coba yang berikut ini, dan lihat perbedaannya:

 sudo -S -p 'Hey, I am a custom message.' ls
Dan
sumber
0

Tidak ada perbedaan antara perintah berhenti dan shutdown dalam hal niat pengguna. Perbedaan tipisnya adalah bahwa Anda harus dengan mudah menekan tombol daya untuk mematikan sistem, sedangkan dalam perintah mematikan akan secara otomatis menginstruksikan Antarmuka Daya Konfigurasi Lanjut (ACPI) untuk mengirim sinyal ke unit daya untuk mematikan sistem.

Unaowo Brandy
sumber