Jawaban:
The -S
dan -p
switch untuk sudo
tidak memiliki kepentingan dalam kasus ini. Inilah yang mereka lakukan, masing-masing.
The
-S
beralih menyebabkansudo
untuk membaca password dari STDIN. Ini memungkinkan, misalnya, kata sandi untuk disalurkansudo
melaluiecho
ataucat
.The
-p
switch 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
halt
perintah, jika digunakan tanpa-p
switch, 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 now
danhalt -p
semua melakukan hal yang sama sepertihalt
sendirian, 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.
halt
bukan shutdown
, itu adalah perintah yang berbeda. Yang pertama tidak mematikan daya, kecuali -p
opsi digunakan
Dari manual ( man halt
): "-p, --poweroff: Menginstruksikan perintah berhenti untuk bukan berperilaku sebagai poweroff."
Dan, dalam kasus Anda, -p
itu tidak digunakan dalam halt
perintah, 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, prompt
kosong (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)
Ada jawaban yang bagus di situs Unix SE tentang masalah shutdown
vs 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
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.
shutdown -h now
tidak serta merta mematikan daya. Sesuaiman shutdown
, itu tergantung pada sistem.shutdown -H now
(perhatikan tutup padaH
) adalah yang dijamin setara denganhalt