"Apagar ahora" o "apagar -h ahora" para apagar Raspberry Pi?

12

Soy nuevo en Linux (usando Raspbian) y Raspberry Pi, y me pregunto cuál de los dos comandos mencionados en el título debería usar al apagar mi Pi. Los busqué en Google, pero todavía no entiendo la diferencia entre los dos, ¿importa cuál uso?

Solo un chico
fuente

Respuestas:

13

Intenta escribir man shutdown. Las páginas de manual le dan una lista completa de las opciones que puede tomar un comando y una explicación de lo que hacen. En el caso de -h:

-h Solicita que el sistema se detenga o se apague después de que se haya apagado, con la opción de decidir qué queda en manos del sistema.

La diferencia entre incluir la -hopción o no, es leve y es irrelevante en este caso, ya que no puede apagar el Pi de todos modos, no sin quitar manualmente la alimentación del USB.

Greenonline
fuente
5

La documentación está en man shutdown. 1

-P, --poweroff
           Power-off the machine (the default).

[...]

-h
           Equivalent to --poweroff, unless --halt is specified.

A veces, los comandos tienen interruptores aparentemente redundantes como este porque deben satisfacer especificaciones para varios contextos diferentes. La lógica simple nos dice que, dado que poweroffes el valor predeterminado de todos modos, el uso -hes redundante en sí mismo (de nuevo, existe para satisfacer una especificación externa; algunas implementaciones shutdownpueden no funcionar de esta manera de manera predeterminada, pero todas las que cumplan se implementarán -h).

Dado que el pi en sí no puede apagarse (está enchufado == encendido o no), no tiene sentido usarlo poweroff, pero no causará ningún daño. Puede hacer una diferencia WRT la forma en que el LED rojo parpadea al final (se puede comparar shutdown -Hpara ver). Tenga en cuenta que el objetivo principal de shutdownes detener (detener) la ejecución del sistema operativo.

Entonces puedes usar cualquier forma.


1. Este es en realidad de Raspbian jessie y viene con systemd; es ligeramente diferente del apagado en Raspbian wheezy (la respuesta de Greenonline cita eso), que es un ejemplo de lo que menciono en el siguiente párrafo sobre diferentes implementaciones que cumplen la misma especificación. El proceso de apagado es en realidad parte del sistema init , que es SysV en wheezy y systemd en jessie.

Ricitos de oro
fuente
1

yo prefiero

sudo halt

No recuerdo por qué elegí esto, pero, por cualquier razón, otros comandos causan problemas. Esto funciona perfectamente Reiniciar:

sudo restart
otah007
fuente
2
Si realiza solo una halt, podría causar la pérdida de datos. Una práctica mucho mejor sería sudo sync;sync;halt, ya que esto sincroniza el almacenamiento de datos (es decir, discos duros, tarjeta SD), con cualquier dato almacenado en caché no escrito aún en la memoria, antes de detener el sistema.
Greenonline
2
@Greenonline, si realiza un halt nivel de ejecución 0 o 6 , podría causar la pérdida de datos. En cualquier otro nivel de ejecución, es equivalente a shutdown -h now.
Marque el
1
¿Por qué los usuarios tienden a ignorar la existencia del comando "init" en sistemas operativos tipo UNIX? init 0para apagar, init 6para reiniciar
rkosegi
@Greenonline, @Mark, de ahora en adelante lo usaré, ¡ shutdown -h nowno me di cuenta de que haltera peligroso!
otah007