¿Cómo apago mi Raspberry Pi?

246

¿Debo tirar del enchufe? ¿O es mejor si salgo de LXDE y de cualquier otro proceso en ejecución primero?

Andrew Fogg
fuente
45
Por supuesto
apago
11
sudo halt -plo haré.
Thorbjørn Ravn Andersen
12
Me encantaría ver un "tutorial" para un botón duro conectado a GPIO para indicarle al sistema operativo que se apague.
20
Las personas que simplemente están sacando el poder de debajo de su Pi realmente deberían dejar de hacerlo. He tenido dos instalaciones completas de Rasbian que inician el kernel en pánico debido a sistemas de archivos corruptos debido a apagados incorrectos (por ejemplo, desconectando la alimentación). Tuve que volver a crear una imagen de la tarjeta en ambos casos y volver a hacer todo el trabajo que puse para configurarla.
tavis 01 de
3
@tavis: cuando obtenga una buena configuración con la que esté satisfecho, realmente debería hacer una copia de seguridad con algo como Win23 Disk Imager. Ligero, gratuito, etc., mantendrá una copia exacta de todo el sistema operativo de Raspberry Pi, por lo que solo tendrá que hacer un viaje rápido a Best Buy sin tener un Pi completamente restaurado, suponiendo que el problema sea una falla del disco o una configuración incorrecta: -).
GojiraDeMonstah

Respuestas:

250

Definitivamente no quieres simplemente desconectarlo. Esto puede causar problemas con la tarjeta SD y el sistema de archivos.

Desde la línea de comando

Al usar la línea de comando o una ventana de terminal, puede ingresar lo siguiente para hacer un apagado limpio:

sudo shutdown -h now

Desde la GUI de LXDE

  1. Haga clic en el botón de apagado (botón de encendido rojo) en la barra de menú en la esquina inferior derecha de la pantalla.
  2. Haga clic en apagar (o "cerrar sesión" como se muestra en las versiones más nuevas, luego emita el comando de apagado mencionado anteriormente).

Una vez que dice Sistema detenido , puede quitar el cable de alimentación si es necesario.

Steve Robillard
fuente
2
Con respecto a la parte de la GUI de LXDE: ¿Sigue siendo actual? Intenté con Raspbian correspondiente a NOOBS 1.4 lanzado 2015-03, versión subyacente de Linux: Debian 7 (Wheezy) - No estoy seguro de la versión exacta, pero es Raspbian ultimo 2014 / primo 2015 (la corrección para el error Shellshock está incluida) . Al presionar el botón de encendido en la esquina inferior derecha solo se cierra la sesión (y se cancela). Sin embargo, hay un icono en el escritorio llamado "Apagar". No sé si NOOBS personaliza / configura Raspbian.
Peter Mortensen
@PeterMortensen parece que la versión más nueva de Raspbian lo ha eliminado de las opciones, así que hice una edición anterior para abordarlo, gracias.
Steve Robillard
57

Es mejor apagar siempre correctamente si puede.

Desenchufar constantemente el dispositivo sin apagarlo correctamente puede tener efectos no deseados en la tarjeta SD (un objeto temperamental ya).

Como referencia, para cerrar desde la terminal puede usar:

sudo shutdown -h now

o

sudo halt

Estos comandos se envían SIGTERMa todos los procesos en ejecución, notificándolos para guardar sus datos y salir. Luego se envía SIGKILLa todos los procesos restantes para detener el sistema, seguido finalmente de desmontar todos los sistemas de archivos. Luego se mostrará la pantalla System Haltedy puede tirar del enchufe.

Jivings
fuente
66
sudo poweroffTambién funciona bien.
Nilpo
3
Como curiosidad, ¿cuál es la diferencia entre halt, shutdowny poweroff?
ACarter
2
@ACarter No hay diferencia, todos cambian el sistema al nivel de ejecución 6.
Jivings
3
No es exactamente lo mismo: aplawrence.com/Linux/halt_shutdown_reboot.html
Anake
1
Son @Jivings no es exactamente el mismo en cada sistema / distribución , por ejemplo, algunas variantes de BSD se acaba de poner fin a la CPU sin siquiera matar cualquier proceso al llamar halt. Además, puede especificar haltsimplemente detener el núcleo / CPU de inmediato sin eliminar ningún proceso; por esta razón, me apegaría a usarlo a shutdownmenos que tenga una razón específica para no hacerlo.
Avance el
29

También he usado esa solución shutdown.py .

Aún necesitará encontrar un interruptor físico y soldarlo a los pines 6 y 8 del encabezado 5 . Tomé el mío de un viejo tablero Arduino roto. También he perforado un pequeño agujero en la caja para asegurarme de que puedo presionar el botón con un pequeño alfiler de madera cuando la caja está cerrada.

Así es como esto luce:

Captura de pantalla de la disposición del interruptor

Oleg Gryb
fuente
Como novato de Raspberry Pi, ¿por qué es necesario encontrar un interruptor físico y soldarlo a esos pines? ¿Necesita hardware para apagarlo correctamente, o qué sucede si solo lo apaga usando un software (es decir, desde el shell o desde una GUI)?
Hola
El punto era hacerlo localmente sin acceso remoto. No hay ningún botón que apague correctamente el sistema operativo, por lo que simplemente "desconectar" como lo sugirió OP no es una buena opción.
Oleg Gryb
No estoy seguro de seguirte. ¿Por qué es necesario un interruptor físico soldado al Pi, o incluso mejor que tirar del enchufe?
Hola
No, definitivamente no lo eres. No digo que "sea necesario", digo que puedes usar la solución para apagar el dispositivo con gracia sin acceso remoto.
Oleg Gryb
Ah, lo entiendo, así que solo es necesario si usas la solución shotdown.py. Sin embargo, el archivo parece haberse movido o eliminado; su enlace ya no lo señala.
Hola
14

Seguí el proyecto descrito en el interruptor de apagado de Raspberry Pi: apagar el Pi de forma segura , pero configuré el pin 17 para que se levante internamente. Luego, conecte los cables como el proyecto anterior, pero omita las resistencias y agregue el siguiente script de Python en /etc/rc.local:

python shutdown_button.py

Archivo shutdown_button.py

import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
    print GPIO.input(17)
    if (GPIO.input(17) == False):
        os.system("sudo shutdown -h now")
        break
    time.sleep(1)
Jens Peter Nielsen
fuente
1
Una peculiaridad de lo anterior sería que debido a que verifica el estado una vez por segundo, a veces requerirá mantener presionado el botón durante un segundo completo, y otras veces parecerá que comienza a apagarse instantáneamente. Eso está bien, por supuesto, solo una peculiaridad.
Brian
8
El uso en GPIO.wait_for_edge(17, GPIO.FALLING)lugar del ciclo while es más receptivo.
Mauro De Lucca
13

Dejando a un lado otras consideraciones, la alimentación y otros conectores se diseñarán para un número limitado de ciclos de inserción / desconexión. A menudo, este es un número sorprendentemente bajo.

Estadísticamente, los conectores son una fuente muy probable de falla del equipo.

Con vistas a la longevidad general de su Pi, es posible que desee moderar la cantidad de conectores de inserción / desconexión que experimenta. Una forma de ayudar a hacer esto sería utilizar el interruptor de encendido / apagado del enchufe de la fuente de alimentación.

image_doctor
fuente
Entonces, ¿cuál es la sugerencia? ¿Apague la Raspberry Pi desconectando la fuente de alimentación de la red eléctrica (reduciendo así la cantidad de ciclos de inserción / extracción del conector del dispositivo)? Encuentro su respuesta con respecto a la probabilidad de falla del conector muy interesante. ¿Puedes respaldarlo con enlaces a alguna evidencia? Gracias.
Andrew Fogg
3
@ AndrewFogg Es un factor bien conocido en el diseño de equipos en Ingeniería Eléctrica. En el caso general, los componentes electrónicos no experimentan el mismo grado de fuerzas mecánicas que los conectores. La vida útil de los fabricantes, como es de esperar, para el conector se obtiene en condiciones favorables, por lo que a menudo son optimistas y no tienen en cuenta el uso humano en la vida real. USB 5000-10000. Entonces sí, tiene razón, apagar la toma de corriente es la mejor opción.
image_doctor
Agregue la sugerencia a su respuesta. Usted y yo llegamos a la conclusión, pero otros pueden no ver las implicaciones.
Bengt
¿Y qué hay de los interruptores? ¿Están diseñados para más on / off-circles? ¿Sería una buena idea colocar un interruptor en el lado de CA de la fuente de alimentación?
Bengt
2
Si es accesible (y no entra en un equipo aún más costoso, como una computadora de escritorio / portátil), a menudo es preferible conectar y desconectar el extremo USB "A" del cable. Los cables son baratos de reemplazar, y el extremo "A" generalmente se conecta y desconecta con mayor facilidad sin requerir que agarre firmemente la placa con los dedos.
Chris Stratton
6

Me conecto a mi Raspberry Pi de forma remota, y así es como lo apagué:

  1. Ejecute el comando:
    sudo shutdown -h now
  2. Espere hasta que los LED dejen de parpadear en la Raspberry Pi.
  3. Espere cinco segundos adicionales para una buena medida (opcional).
  4. Apague la fuente de alimentación a la que está conectada la fuente de alimentación Raspberry Pi.

Como uso una pantalla remota, no veo necesariamente el resultado final de la Raspberry Pi en la ventana de comandos, por eso uso las luces de actividad. El estado sin parpadeo de los LED no es una indicación absoluta de un apagado exitoso completo, pero me ha funcionado lo suficientemente bien.

PiHax
fuente
3

Para evitar problemas de corrupción de la tarjeta SD, siempre debe apagar el sistema operativo correctamente. Puede automatizar esto mediante el uso de una solución de hardware de controlador de potencia y un script que se activa a través de una señal de puerto GPIO, por ejemplo (además del suministro de Pi mencionado anteriormente):

La placa RemotePi en el último enlace tiene la funcionalidad adicional de usar controles remotos IR para encender / apagar la Raspberry Pi.

cartero
fuente
2

Si su Raspberry Pi está congelada, entonces no puede ingresar a ssh o consola, entonces esto ayuda. Estaba roto mis pocas tarjetas SD antes de saber esto:

Mantenga presionadas las teclas Alt + PrintScreen y, mientras mantiene presionadas esas teclas, presione las siguientes teclas en secuencia, una a la vez, con una pausa de unos segundos entre ellas.

Alt+ PrintScreen+R E I S U O

o

Alt+ PrintScreen+ R E I S U B(reiniciar)

Una práctica mnemotécnica para recordar es reiniciar incluso si el sistema está completamente roto.

Sustituya "O" por "B" para apagar el sistema en lugar de reiniciar (O = apagado, B = inicio).

Fuente: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262

Almas Dusal
fuente
1
fuente principal: en.wikipedia.org/wiki/Magic_SysRq_key (tenga en cuenta la distribución de su teclado)
Fabian
1

Esto no es muy difícil. Vaya al símbolo del sistema y escriba sudo halt. Ingrese su contraseña si es necesario. Una vez que no haya nada en la pantalla, desconecte el enchufe.

Información del sitio web de Raspberry Pi.

Algo
fuente
Solo agregaría que después de que la pantalla se oscurezca, verifico dos veces para asegurarme de que la luz verde también esté apagada.
SDsolar
1

También hay una placa GPIO llamada Pi Supply que tiene un interruptor de encendido, administración de energía y apagado para bloqueos. También es útil si su enchufe está detrás del televisor y es difícil de encontrar. Todavía necesita apagar normalmente, pero luego apaga la Raspberry Pi.

Si le preocupa usar el puerto micro USB de alimentación en el uso normal, puede obtener un adaptador USB de macho a hembra y conectar su fuente de alimentación a eso.

Graeme
fuente
1

¡Hay varias formas de apagar el pi! ¡Solo tirar del enchufe sin el apagado adecuado podría dañar su tarjeta SD!

Para apagar, use sudo shutdown -nowo sudo shutdown -timeindique el apagado en minutos.

Para reiniciar, use sudo rebootpara reiniciar y sudo reboot -time in minutespara volver a encender y o use solo sudo rebootpara reiniciar ahora sudo shutdownsin que el -timevalor predeterminado sea un minuto para cancelar el uso de apagadosudo shutdown -c

Nota: También puede presionar el botón de frambuesa pi y luego hacer clic en encendido. Luego, apague o reinicie, ¡qué apagado y reinicio son inmediatos!


Actualizar:

Como se describe en algunas de las otras respuestas en esta publicación:

sudo halt

También funcionará: una vez que no haya nada en la pantalla, ¡simplemente desconecta!

Usuario98764431
fuente
"no hay forma de encenderlo sin tirar del enchufe y volver a colocarlo" -> Incorrecto. El encabezado RUN se puede usar para hacer un restablecimiento completo del SoC, haciendo que se inicie (ya sea que el sistema operativo se haya apagado o no ...): raspberrypi.stackexchange.com/q/29339/5538 En algunos modelos, estos están etiquetados P6, no EJECUTAR.
Ricitos de oro
@goldilocks Gracias, no sabía que lo había eliminado de mi publicación
User98764431
0

Realmente no necesitas un interruptor de encendido para tu Raspberry Pi. Utilizo un concentrador USB para la fuente de alimentación que tiene interruptores de encendido / apagado. Entonces, cada vez que quiero apagar la Raspberry Pi, solo apago el interruptor USB.

Jim
fuente
20
No es una buena idea solo el poder del Pi: podría correr el riesgo de pérdida de datos o corrupción en apagones repentinos. Es mejor cerrar siempre según lo previsto. por ejemplo, FreeNAS (basado en FreeBSD) es seguro porque la raíz es de solo lectura; Pero, porque es un NAS! los datos se pueden perder al escribir en sus discos duros. Así que al final del día. ¡Utilice siempre métodos de apagado implementados!
Piotr Kula
0

Solo debe tirar del enchufe, si el LED verde está apagado. El led verde parpadea, si la máquina está escribiendo en la tarjeta SD.

Aaron
fuente
0

Los comandos normales de Unix funcionan con Linux, así:

init 0 lo apagará, por lo que es seguro desconectarlo.

init 6 se reiniciará.

A diferencia de Unix, no hay necesidad real de sincronizar; sincronización antes de cerrar Pero simplemente tirar del enchufe puede causar errores, así que asegúrese de usar el apagado o init 0 antes de desconectar la alimentación. Si interrumpe la alimentación de forma inesperada, use fsck para verificar y / o solucionar cualquier problema que pueda surgir.

Puede haber un caso para hacer la sincronización completa; sincronización sincronización dormir 30; detente si tienes un sistema de archivos externo que no se desmonta limpiamente. Sabría si esto es un problema ejecutando fsck en sistemas de archivos externos justo después del arranque. Si se trata de encontrar problemas, es posible que desee hacer todo. Pero nunca he visto que esto suceda con mi Rpi3.

SDsolar
fuente
0

Siempre use un comando para apagar y apagar su Raspberry Pi. Uso sudo halt como muchos otros usuarios. Recomiendo hacer una copia de seguridad de su tarjeta SD. Accidentalmente desconecté la mía y corrompí la imagen de alguna manera. Es más fácil apagar que grabar una nueva imagen y comenzar de nuevo

Pismurf
fuente