Ubuntu หนึ่งใช้รีโมทsudo -S -p '' haltเพื่อปิดเครื่องและใช้งานไม่ได้จนถึงที่สุด เปิดจอมอนิเตอร์พร้อมข้อความ
ตอนนี้จะหยุด
[22225.11163] หยุด
ความแตกต่างระหว่างคืออะไรsudo -S -p " halt และsudo shutdown now?
Ubuntu หนึ่งใช้รีโมทsudo -S -p '' haltเพื่อปิดเครื่องและใช้งานไม่ได้จนถึงที่สุด เปิดจอมอนิเตอร์พร้อมข้อความ
ตอนนี้จะหยุด
[22225.11163] หยุด
ความแตกต่างระหว่างคืออะไรsudo -S -p " halt และsudo shutdown now?
คำตอบ:
-Sและ-pสวิทช์สำหรับการsudoไม่มีความสำคัญในกรณีนี้ นี่คือสิ่งที่พวกเขาทำตามลำดับ
-Sสวิทช์ที่ทำให้เกิดsudoการอ่านรหัสผ่านจาก STDIN นี้จะช่วยให้ยกตัวอย่างเช่นรหัสผ่านที่จะได้รับการประปาจะsudoผ่านหรือechocat
-pสวิตช์ช่วยให้คุณแทนที่รหัสผ่านเริ่มต้นที่รวดเร็วและใช้อย่างใดอย่างหนึ่งที่กำหนดเองหรือไม่มีเลย
sudoความแตกต่างที่สำคัญคือในคำสั่งที่สองถูกออกโดย
haltคำสั่งถ้าเรียกโดยไม่มี-pสวิทช์เพียงแค่หยุด OS และหยุดซีพียูทั้งหมด เมื่อระบบถูกหยุดอย่างสมบูรณ์ผู้ใช้อาจกดปุ่มเปิด / ปิดบนคอมพิวเตอร์ของตนเองอย่างปลอดภัยกระบวนการ
poweroff,,shutdown -h nowและhalt -pคำสั่งทั้งหมดทำสิ่งhaltเดียวกับที่อยู่คนเดียวในขณะที่ส่งคำสั่ง ACPI ไปยังส่งสัญญาณให้หน่วยจ่ายไฟเพื่อตัดการเชื่อมต่อพลังงานหลัก สิ่งนี้ป้องกันไม่ให้คุณต้องกดปุ่มเปิด / ปิดเครื่องบนคอมพิวเตอร์ของคุณ
haltไม่ใช่shutdownพวกเขาเป็นคำสั่งที่แตกต่างกัน อดีตไม่ได้ปิดไฟจนกว่า-pจะมีการใช้ตัวเลือก
จาก manual ( man halt): "-p, --poweroff: สั่งให้คำสั่ง halt แทนทำงานเป็น poweroff แทน"
และในกรณีของคุณ-pถูกไม่ได้นำมาใช้ในhaltคำสั่งด้วยเหตุนี้คอมพิวเตอร์ของคุณไม่ได้ปิด
อย่าสับสนกับ -p อันนี้จากsudoมันเป็นพารามิเตอร์ที่แตกต่างกันสำหรับคำสั่งที่แตกต่างกัน จากman sudo:
-S ตัวเลือก -S (stdin) ทำให้ sudo อ่านรหัสผ่านจากอินพุตมาตรฐานแทนอุปกรณ์ปลายทาง รหัสผ่านจะต้องตามด้วยอักขระขึ้นบรรทัดใหม่-p prompt ตัวเลือก -p (พรอมต์) อนุญาตให้คุณแทนที่การแจ้งรหัสผ่านเริ่มต้นและใช้รหัสที่กำหนดเองในกรณีของคุณpromptว่างเปล่า (ไม่มีข้อความแสดง sudo เมื่อถามรหัสผ่าน) และ -S ทำให้ sudo ยอมรับรหัสผ่านรูท vi stdin (ดังนั้นรหัสผ่านอาจถูกจัดหาโดยใช้ไพพ์และการเปลี่ยนเส้นทางจากคำสั่งอื่นแทนการพิมพ์)
มีคำตอบที่ดีที่ไซต์ Unix SEเกี่ยวshutdownกับhaltปัญหาvs : อะไรคือความแตกต่างระหว่างคำสั่ง Halt และ Shutdown?
สำหรับsudo -S -p ''ส่วนนี้จะเป็นการลบข้อความเกี่ยวกับการถามรหัสผ่านในเทอร์มินัล (คุณยังต้องใส่รหัสผ่านของคุณ)
ตัวอย่างเช่นการรันsudo <some_command>จะให้เอาต์พุตนี้ก่อนรันคำสั่งนี้:
[sudo] รหัสผ่านสำหรับ:
แต่การทำงานsudo -S -p '' <some_command>จะซ่อนข้อความนั้น
ในความเป็นจริงข้อความที่คุณใส่ในเครื่องหมายคำพูดคือการแทนที่ข้อความก่อนหน้า
ไปข้างหน้าและลองต่อไปนี้และดูความแตกต่าง:
sudo -S -p 'Hey, I am a custom message.' ls
ไม่มีความแตกต่างระหว่างคำสั่ง halt และการปิดในแง่ของความตั้งใจของผู้ใช้ ความแตกต่างบางประการคือในการหยุดคุณต้องกดปุ่มเปิดปิดเครื่องเพื่อปิดระบบในขณะที่คำสั่งปิดเครื่องจะสั่งให้ Advanced Configuration Power Interface (ACPI) โดยอัตโนมัติเพื่อส่งสัญญาณไปยังหน่วยพลังงานเพื่อปิดระบบ
shutdown -h nowไม่จำเป็นต้องปิดเครื่องด้วยเช่นกัน ตามman shutdownมันขึ้นอยู่กับระบบshutdown -H now(สังเกตแคปบนH) เป็นสิ่งที่รับประกันว่าเทียบเท่ากับhalt