Tắt Pi an toàn mà không cần SSH hoặc màn hình?


25

My Pi hiện không phản hồi với SSH và màn hình HDMI duy nhất tôi có là một TV lớn cách đó vài mét. Tôi đã nghe thấy những điều tồi tệ về việc rút phích cắm, nhưng tôi có lựa chọn nào khác không?

Hiện đang chạy raspbian không đầu, có lẽ tôi có thể kết nối một bàn phím và đoán về các lệnh?


3
Hiện tại nó sẽ không hoạt động, nhưng bạn có thể thêm một nút vào các chân GPIO của mình để tắt nó đúng cách trong tương lai
Rizzle Light

Là một bảng dữ liệu: trong vài năm, tôi đã sử dụng RPis cho các tác vụ khác nhau trên các robot di động chạy bằng pin. Những người này bị cắt điện thường xuyên và không có cảnh báo. Tôi chưa gặp phải sự cố với bất kỳ thẻ Pis / SD nào (tốt, ngoài kết nối SD bị lỏng do rung liên tục và đập vào tường).
Mike Ounsworth

Bạn không thể tạm thời di chuyển màn hình HDMI qua một vài mét và sau đó đặt lại màn hình khi bạn hoàn thành?
jpmc26

@ jpmc26 nó xuống một bộ cầu thang và đó là một chiếc TV khá lớn.
vpzomtrrfrt

Câu trả lời:


25

Mặc dù nó nên được coi là biện pháp cuối cùng vì nó làm tăng nguy cơ tham nhũng hệ thống tập tin, rút ​​phích cắm dây thường không sao nếu đèn ACT màu xanh lá cây không nhấp nháy mạnh .

Theo mặc định, đèn led ACT hiển thị hoạt động I / O trên thẻ SD. Nếu nó tắt, rất có thể hệ thống không hoạt động. Điều này không hẳn đúng, nhưng việc giết chết một hệ thống đang bận rộn với hoạt động chuyên sâu của CPU (và không phải I / O) dù sao cũng không phải là vấn đề. Hệ điều hành thực hiện lưu trữ thông tin hệ thống bộ nhớ cache trong bộ nhớ, có nghĩa là nó có thể không đồng bộ với bộ nhớ thực trên thẻ SD, nhưng điều này sẽ được xử lý ít nhất vài giây một lần (đôi khi bạn có thể suy ra mẫu này từ ACT đã dẫn).

Vì vậy, nếu nó xuất hiện ở chế độ chờ sau khi xem nó trong 5-10 giây và bạn không còn lựa chọn nào khác, hãy tiếp tục và rút phích cắm điện. Một lần nữa, điều này không đảm bảo bất cứ điều gì và có những kịch bản không may trong đó hệ thống có thể bị khóa và đồng bộ hóa hệ thống tập tin không xảy ra đúng cách, nhưng trong hầu hết các trường hợp, bạn sẽ ổn.

Có lẽ tôi đã phải kéo dây trên một chiếc pi (hoặc bị mất điện) hơn một trăm lần theo cách này và không thể nhớ mình đã từng đau buồn vì điều đó. Đôi khi tôi sẽ đặt thẻ vào một máy khác và chạy e2fsck -ftrên hệ thống tập tin gốc, rất đáng giá. HĐH sẽ tự động kiểm tra hệ thống tập tin khi khởi động nhưng có thể kiểm tra này không thành công (hoặc không được thực hiện chính xác) và không được chú ý.


8
Khoảng thời gian nhàn rỗi 5 đến 10 giây là do cài đặt mặc định của Linux /proc/sys/vm/dirty_writeback_centisecslà 500 centi giây (5 giây). Vì vậy, nếu Linux có dữ liệu không được ghi trong bộ đệm I / O, nó sẽ bắt đầu xóa dữ liệu vào đĩa sau 5 giây, trừ khi bạn thay đổi nó. Về lý thuyết, một FS ghi nhật ký sẽ an toàn trước sự hỏng hóc của toàn bộ hệ thống tập tin ngay cả khi bạn tắt nguồn trong khi viết, nhưng chờ nó ở chế độ chờ sẽ cho bạn cơ hội tốt hơn để không làm hỏng bất kỳ tệp nào được sửa đổi gần đây. (Nhật ký nào chỉ bảo vệ với dữ liệu ext3 / ext4 = tạp chí, không phải là mặc định)
Peter Cordes

31

Khóa ma thuật SysRq

Điều này sẽ giúp bạn bắt đầu.

Khóa SysRq ma thuật là tổ hợp phím được hiểu bởi nhân Linux, cho phép người dùng thực hiện các lệnh cấp thấp khác nhau bất kể trạng thái của hệ thống. Nó thường được sử dụng để khôi phục từ đóng băng hoặc khởi động lại máy tính mà không làm hỏng hệ thống tập tin . Tác dụng của nó tương tự như nút đặt lại phần cứng của máy tính (hoặc công tắc nguồn) nhưng với nhiều tùy chọn hơn và kiểm soát nhiều hơn.

Bạn có thể cắm bàn phím và nhập nội dung này vào màn hình (không có màn hình.)

Không tham nhũng hệ thống tập tin, không cần thêm phần cứng.


Nút GPIO

Như Rizzle Light đã đề xuất, bạn có thể lấy một số loại nút và nối nó với các chân GPIO và thực hiện một phép thuật lập trình nhỏ để nhấn nút thực hiện lệnh "poweroff" (tất nhiên là có quyền của quản trị viên.)

Có rất nhiều hướng dẫn lập trình GPIO trực tuyến mà bạn có thể thích nghi, như thế này .

Rahul R Dhobi có một kịch bản python hai lớp đẹp sẽ tắt Raspberry Pi:

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

thực thi tập lệnh của bạn với quyền root.


3
Tài liệu ma thuật SysRQ của hạt nhân Linux là tài liệu duy nhất tôi từng in ra giấy :). (Và điều đó đã trở lại khi tôi chỉ có một máy tính.)
Peter Cordes

3

Không cần đoán; chỉ cần cắm vào bàn phím và gõ này và nhấn enter:

sudo shutdown -h now

Các shutdownlệnh cần một đặc ân gốc để thực thi.


4
Trước tiên, bạn phải đăng nhập (mù) và sử dụng tài khoản đặc quyền hoặc (giả sử pingười dùng siêu cường của Raspbian ...) sudo.
goldilocks

2
@goldilocks: Bạn có thể muốn đặt sudođầu lệnh, thay vì nối thêm nó :-)
psmears

@goldilocks: Phải, vẫn vậy, đăng nhập không có vẻ như là một việc vặt.
Cuộc đua nhẹ nhàng với Monica

1
Tôi đã không bình luận về mức độ khó khăn;) @psmears Rất tiếc, còn lại bạn! Đã sửa.
goldilocks

@goldilocks: Đủ công bằng :)
Cuộc đua nhẹ nhàng với Monica

1

Cổng nối tiếp là một dự phòng tốt cho các tình huống như vậy và nó được bật theo mặc định.

Bạn có thể thử kết nối với cổng nối tiếp bằng cách sử dụng Putty. Nếu điều đó hoạt động, sau đó đăng nhập bằng tên người dùng của bạn và phát hành "sudo poweroff" để tắt an toàn.

Xem http://elinux.org/RPi_Serial_Connection để biết thêm thông tin ...


0

Tôi đã kiểm tra một máy chủ tệp trong một phần của ngôi nhà mà không dễ dàng truy cập vào màn hình khi tôi gặp vấn đề tương tự. Phần sau đây hoạt động với tôi, giả sử pi của bạn đang khởi động vào môi trường GUI mặc định:

  1. Cắm bàn phím (nếu chưa được thực hiện).
  2. Nhấn Alt-F2 để mở hộp thoại Run.
  3. Nhập nội dung sau và nhấn Enter để bắt đầu cửa sổ Terminal:

    lxterminal

  4. Đợi vài giây để an toàn, sau đó gõ như sau:

    sudo đóng cửa bây giờ -h

  5. Nhấn Enter.

Điều này sẽ tắt Pi. Nếu nó hoạt động, đèn bàn phím và mọi thiết bị USB kèm theo sẽ tắt. Nếu không, bạn có thể lặp lại các bước trên trong trường hợp bạn mắc lỗi gõ các lệnh.


-1

Nút cửa sổ - phím xuống chín lần - nhập 2 lần ... Tận hưởng ...


1
Cảm ơn câu trả lời - tất cả các đầu vào được đánh giá cao. Tôi đã được yêu cầu đề xuất một số thay đổi để giúp bạn cải thiện câu trả lời của mình: Đầu tiên, tôi giả sử bằng "Nút cửa sổ", ý bạn là nút có logo Microsoft trên bàn phím Windows. Nếu vậy, bạn nên nói rõ điều đó. Ngoài ra, một chuỗi chính được ngụ ý trong câu trả lời của bạn, nhưng không đủ cụ thể. Tóm lại, xin vui lòng viết lại câu trả lời của bạn để làm cho nó rõ ràng rõ ràng câu trả lời của bạn thực sự là gì, thay vì dựa vào các giả định.
Seamus

Cũng lưu ý rằng người hỏi đang chạy raspbian không đầu . Điều đó có nghĩa là môi trường máy tính để bàn chưa được cài đặt, vì vậy chuỗi khóa này có thể sẽ không giúp ích.
Hydraxan14
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.