ปิด Pi อย่างปลอดภัยโดยไม่ใช้ SSH หรือจอภาพใช่หรือไม่


25

ปัจจุบัน Pi ของฉันไม่ตอบสนองต่อ SSH และจอภาพ HDMI เดียวที่ฉันมีคือทีวีขนาดใหญ่ที่อยู่ห่างออกไปหลายเมตร ฉันได้ยินสิ่งเลวร้ายเกี่ยวกับการถอดปลั๊ก แต่ฉันมีตัวเลือกอื่นหรือไม่?

ขณะนี้กำลังรัน raspbian ที่ไม่มีส่วนหัวบางทีฉันอาจเชื่อมต่อแป้นพิมพ์และเดาคำสั่งได้บ้าง?


3
ยังไม่สามารถใช้งานได้ในตอนนี้ แต่คุณสามารถเพิ่มปุ่มลงในพิน GPIO ของคุณเพื่อปิดการทำงานอย่างถูกต้องในอนาคต
Rizzle Light

ในฐานะที่เป็นดาต้าพอยต์: เป็นเวลาหลายปีที่ฉันได้ใช้ RPis สำหรับงานต่าง ๆ เกี่ยวกับหุ่นยนต์มือถือที่ใช้พลังงานแบตเตอรี่ สิ่งเหล่านี้ทำให้พลังของพวกเขาลดลงบ่อยครั้ง ฉันยังไม่พบปัญหากับการ์ด Pis / SD ใด ๆ (นอกเหนือจากการเชื่อมต่อ SD กลายเป็นหลวมจากการสั่นสะเทือนคงที่และการชนติดผนัง)
Mike Ounsworth

คุณไม่สามารถย้ายจอภาพ HDMI ชั่วคราวไปสองสามเมตรจากนั้นนำกลับมาใช้ใหม่เมื่อทำเสร็จแล้วใช่ไหม
jpmc26

@ jpmc26 มันลงบันไดและมันก็เป็นทีวีขนาดใหญ่
vpzomtrrfrt

คำตอบ:


25

แม้ว่ามันควรจะถือว่าเป็นทางเลือกสุดท้ายเพราะมันจะเพิ่มความเสี่ยงของการทุจริตระบบแฟ้ม, ถอดสายมักจะโอเคถ้าแสง ACT สีเขียวจะไม่กระพริบอย่างเข้มข้น

ตามค่าเริ่มต้นไฟ LED ACT จะแสดงกิจกรรม I / O บนการ์ด SD หากปิดอยู่ระบบส่วนใหญ่จะไม่มีการใช้งาน สิ่งนี้ไม่จำเป็นต้องเป็นจริง แต่การฆ่าระบบที่ยุ่งกับกิจกรรมที่ใช้ CPU มาก (และไม่ใช่ I / O) ก็ไม่ได้เป็นปัญหาโดยเนื้อแท้ ระบบปฏิบัติการจะแคชข้อมูลระบบไฟล์ในหน่วยความจำซึ่งหมายความว่ามันไม่สามารถซิงค์กับที่จัดเก็บข้อมูลจริงในการ์ด SD ได้ แต่สิ่งนี้ควรได้รับการจัดการอย่างน้อยทุกสองสามวินาที (บางครั้งคุณอาจอนุมานรูปแบบนี้ได้จาก ACT นำ)

ดังนั้นหากไม่ได้ใช้งานหลังจากดูไปแล้วประมาณ 5-10 วินาทีและคุณไม่มีทางเลือกอื่นให้ไปข้างหน้าแล้วถอดปลั๊กออก อีกครั้งนี้ไม่รับประกันอะไรและมีสถานการณ์ที่โชคร้ายซึ่งระบบอาจถูกล็อคและการซิงค์ระบบไฟล์ไม่ได้เกิดขึ้นอย่างถูกต้อง แต่ในกรณีส่วนใหญ่คุณควรจะโอเค

ฉันอาจจะต้องดึงสายไฟบนไพ (หรือมีพลังงานล้มเหลว) มากกว่าร้อยเท่าด้วยวิธีนี้และจำไม่ได้ว่าเคยมีความเศร้าเพราะมัน บางครั้งฉันจะใส่การ์ดในเครื่องอื่นและทำงานe2fsck -fกับระบบไฟล์รูทซึ่งคุ้มค่า ระบบปฏิบัติการจะตรวจสอบระบบไฟล์โดยอัตโนมัติเมื่อทำการบู๊ต แต่เป็นไปได้ที่การตรวจสอบนี้จะล้มเหลว (หรือทำไม่ถูกต้อง) และไปที่ไม่มีใครสังเกตเห็น


8
ช่วงเวลาที่ไม่ได้ทำงาน 5 ถึง 10 วินาทีเป็นเพราะการตั้งค่าเริ่มต้นของ Linux สำหรับ/proc/sys/vm/dirty_writeback_centisecsคือ 500 เซ็นต์วินาที (5 วินาที) ดังนั้นหาก Linux มีข้อมูลที่ไม่ได้เขียนอยู่ในบัฟเฟอร์ I / O มันจะเริ่มล้างข้อมูลลงดิสก์หลังจาก 5 วินาทีเว้นแต่คุณจะเปลี่ยน ในทางทฤษฎีแล้วการทำเจอร์นัล FS จะปลอดภัยต่อความเสียหายของระบบไฟล์ทั้งหมดแม้ว่าคุณจะปิดเครื่องในระหว่างการเขียน แต่การรอให้เครื่องว่างอยู่นั้นจะทำให้คุณมีโอกาสที่ดีกว่ามากในการไม่ทำลายไฟล์ที่เพิ่งแก้ไข (การทำเจอร์นัลใดปกป้องเฉพาะกับ ext3 / ext4 data = journal ซึ่งไม่ใช่ค่าเริ่มต้น)
Peter Cordes

31

คีย์ Magic SysRq

คุณควรเริ่มต้นนี้

คีย์ Magic SysRq เป็นการรวมกันที่สำคัญของเคอร์เนล Linux ซึ่งทำให้ผู้ใช้สามารถดำเนินการคำสั่งระดับต่ำได้หลากหลายโดยไม่คำนึงถึงสถานะของระบบ มันก็มักจะใช้ในการกู้คืนจากการค้างหรือรีบูตเครื่องคอมพิวเตอร์โดยไม่เสียหายระบบแฟ้ม มันมีลักษณะคล้ายกับปุ่มรีเซ็ตฮาร์ดแวร์ของคอมพิวเตอร์ (หรือสวิตช์เปิดปิด) แต่มีตัวเลือกมากมายและควบคุมได้มากขึ้น

คุณสามารถเสียบแป้นพิมพ์และพิมพ์สิ่งนี้เป็นคนตาบอด (โดยไม่มีจอภาพ)

ไม่มีความเสียหายของระบบไฟล์ไม่จำเป็นต้องใช้ฮาร์ดแวร์เพิ่มเติม


ปุ่ม GPIO

ตามที่แนะนำให้ Rizzle Light คุณสามารถหยิบปุ่มบางอย่างแล้วต่อสายไปยังหมุด GPIO และทำมายากลการเขียนโปรแกรมเล็กน้อยเพื่อให้การกดปุ่มดำเนินการคำสั่ง "poweroff" (พร้อมสิทธิ์ผู้ดูแลระบบแน่นอน)

มีตันของการเขียนโปรแกรม GPIO บทเรียนออนไลน์ที่คุณสามารถปรับตัวเช่นนี้

Rahul R Dhobi มีสคริปต์ไพ ธ อนสองตัวที่จะปิด Raspberry Pi:

import os
os.system("shutdown now -h")

รันสคริปต์ของคุณด้วยสิทธิ์พิเศษ


3
เอกสาร Magic-SysRQ ของเคอร์เนล Linux เป็นเอกสารชิ้นเดียวที่ฉันเคยพิมพ์ลงบนกระดาษ :) (และนั่นก็กลับมาเมื่อฉันมีคอมพิวเตอร์เพียงเครื่องเดียว)
Peter Cordes

3

ไม่จำเป็นต้องเดา เพียงเสียบคีย์บอร์ดและพิมพ์และกดenter:

sudo shutdown -h now

shutdownคำสั่งต้องการสิทธิ์รากในการดำเนินการ


4
คุณจะต้องเข้าสู่ระบบก่อน (ตาบอด) และใช้บัญชีที่มีสิทธิ์หรือ (สมมติว่าpiผู้ใช้superpowered ของ Raspbian ... ) เติมsudoเงิน
goldilocks

2
@goldilocks: คุณอาจต้องการใส่sudoที่จุดเริ่มต้นของคำสั่งมากกว่าที่จะผนวกมัน :-)
psmears

@goldilocks: ถูกต้องยังเข้าสู่ระบบดูเหมือนไม่น่าเบื่อมาก
การแข่งขัน Lightness กับ Monica

1
ฉันไม่ได้แสดงความคิดเห็นในระดับของความยาก;) @psmears โอ้โหคุณเป็น! การแก้ไข
goldilocks

@goldilocks: ยุติธรรมพอ :)
การแข่งขัน Lightness กับโมนิก้า

1

พอร์ตอนุกรมเป็นทางเลือกที่ดีสำหรับสถานการณ์ดังกล่าวและจะเปิดใช้งานตามค่าเริ่มต้น

คุณสามารถลองเชื่อมต่อกับพอร์ตอนุกรมโดยใช้ Putty หากใช้งานได้ให้ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้ของคุณและออก "sudo poweroff" เพื่อปิดเครื่องอย่างปลอดภัย

ดูhttp://elinux.org/RPi_Serial_Connectionสำหรับข้อมูลเพิ่มเติม ...


0

ฉันกำลังทดสอบเซิร์ฟเวอร์ไฟล์ในส่วนหนึ่งของบ้านโดยไม่สามารถเข้าถึงจอภาพเมื่อฉันพบปัญหาเดียวกัน ต่อไปนี้ใช้งานได้สำหรับฉันสมมติว่า pi ของคุณกำลังบู๊ตกับสภาพแวดล้อม GUI เริ่มต้น:

  1. เสียบแป้นพิมพ์ (หากยังไม่ได้ทำ)
  2. กด Alt-F2 เพื่อเปิดกล่องโต้ตอบเรียกใช้
  3. พิมพ์ต่อไปนี้และกด Enter เพื่อเริ่มต้นหน้าต่างเทอร์มินัล:

    lxterminal

  4. รอสักครู่เพื่อให้ปลอดภัยจากนั้นพิมพ์ต่อไปนี้:

    sudo ปิดแล้วตอนนี้ -h

  5. กด Enter

นี่ควรปิด Pi หากใช้งานได้ไฟแสดงสถานะแป้นพิมพ์และอุปกรณ์ USB ใด ๆ ที่ต่ออยู่จะถูกปิด ถ้าไม่คุณสามารถทำซ้ำขั้นตอนข้างต้นในกรณีที่คุณพิมพ์ผิดคำสั่ง


-1

ปุ่มหน้าต่าง - ปุ่มลงเก้าครั้ง - ป้อน 2 ครั้ง ... เพลิดเพลิน ...


1
ขอบคุณสำหรับคำตอบ - อินพุตทั้งหมดได้รับการชื่นชม ฉันถูกขอให้แนะนำการเปลี่ยนแปลงบางอย่างเพื่อช่วยให้คุณปรับปรุงคำตอบของคุณ: ก่อนอื่นฉันถือว่า "ปุ่มหน้าต่าง" คุณหมายถึงปุ่มที่มีโลโก้ Microsoft บนแป้นพิมพ์ Windows ถ้าเป็นเช่นนั้นคุณควรระบุอย่างชัดเจน นอกจากนี้ยังมีการเรียงลำดับคีย์ในคำตอบของคุณ แต่ไม่เจาะจงพอ ในระยะสั้นโปรดเขียนคำตอบของคุณอีกครั้งเพื่อให้ชัดเจนว่าคำตอบของคุณคืออะไรจริง ๆ มากกว่าที่จะใช้สมมติฐาน
เชมัส

นอกจากนี้โปรดทราบว่าผู้ถามกำลังเรียกใช้raspbian หัวขาด นั่นหมายความว่าไม่ได้ติดตั้งสภาพแวดล้อมเดสก์ท็อปดังนั้นลำดับคีย์อาจไม่ช่วย
Hydraxan14
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.