¿Apagado de Linux en 30 segundos?

8

Pregunta simple: ¿qué parámetros se pueden usar para apagar una computadora con Linux / OSX en 30 segundos? Siempre he ejecutado Windows, donde iría shutdown -s -t 30pero los parámetros son diferentes. Lo busqué aquí, pero solo le permitirá apagar una computadora a una hora específica (como las 8:00) en lugar de en una cantidad específica de segundos.

icnhzabot
fuente

Respuestas:

8

En OS X puede apagarse en un minuto usando el siguiente comando:

sudo shutdown -h +1

AFAIK, con este comando no es posible especificar segundos en lugar de minutos.

También puede reiniciar usando en -rlugar de -h.


EDITAR:

Como mencionó en su comentario, puede agregar un retraso mediante programación, luego apagar el sistema inmediatamente con

shutdown -h now

Pero tenga en cuenta que ese comando requerirá acceso root.

Austin
fuente
meh Entonces no usar decimales. Supongo que está bien, me preguntaba porque estoy tratando de trabajar en una aplicación Java multiplataforma que puede apagar una computadora. Así que podría hacerlo dormir durante 30 segundos antes de apagarlo de inmediato. ¿Pero sudo shutdown -hapagaría la computadora sin un retraso intencional?
@icnhzabot sudo shutdown -h nowapagaría la computadora de inmediato sin previo aviso.
Austin
OK gracias. Entonces, ¿para el acceso raíz debo hacer lo sudo shutdown -h nowcorrecto?
icnhzabot
@icnhzabot Eso no funcionará para un script / programa automatizado porque solicita al usuario su contraseña de administrador en la línea de comando. Tendría que ejecutar su script como root y simplemente llamar shutdown -h now. Si necesita ayuda con eso, debe hacer una nueva pregunta (suponiendo que no pueda encontrar la respuesta en otro lugar). Además, no olvide marcar la mejor respuesta aquí como "aceptada" si responde a su pregunta.
Austin
3

Usando las llamadas básicas, no veo una manera de hacerlo con segundos, pero parece que puedes hacerlo con minutos:

time Time is the time at which shutdown will bring the system down and
     may be the word now (indicating an immediate shutdown) or specify
     a future time in one of two formats: +number, or yymmddhhmm,
     where the year, month, and day may be defaulted to the current
     system values.  The first form brings the system down in number
     minutes and the second at the absolute time specified.

En otras palabras:

shutdown -h +1

Si quieres apagarlo en 1 minuto.


fuente
¿Sabes si funcionaría con .5?
Aquí hay un error: la -ropción es reiniciar, no apagar. Tienes que usar -hpara apagar.
Austin
@Austin ugh, arregló eso en línea.
3

Como se señaló, el comando

sudo shutdown -h +1

Agrega un minuto.

Si quisieras hacerlo en segundos u horas o algo muy específico, podrías hacer algo como:

shutdown -h `date --date "now + 60 seconds"`

EDITAR: Lo anterior ya no funciona en versiones más recientes de Ubuntu. Gracias por señalar eso @zitrax. Mi error tienes razón.

Pero aún puede hacerlo, pero parece que tal vez al minuto más cercano.

sudo shutdown -h `date --date "now + 10 minutes" "+%H:%M"`

Lo cual no tiene sentido cuando el parámetro + m es más fácil de escribir ... ahhh oh bien.

Matt H
fuente
No funciona (al menos en Linux), esto le da el tiempo en otro formato de lo esperado.
Zitrax
@Zitrax, solo porque no funcionó en su caso no significa que no funcione en todos los sabores de Linux. Me gustaría que también tenga en cuenta que el backtick `es diferente a una cita simple '. Supongo que es por eso que no funcionó para ti. Esto funciona absolutamente en todas las versiones de Ubuntu desde al menos 10.04. Y como Ubuntu se basa en Debian, también funcionará en eso. Podría ser más constructivo decir "No funciona en ..." en lugar de rechazar el voto y hacer una declaración general. Linux es un término genérico, no es una versión. Pero en realidad creo que lo escribiste mal. Inténtalo de nuevo.
Matt H
1
Intenté nuevamente en mi máquina doméstica y tampoco funciona allí. Sé cómo funcionan los backticks. Así que lo he probado en Ubuntu 13.10 y Kubuntu 13.10. ¿Podría ser que estoy usando una configuración regional diferente? El resultado date --date "now + 60 seconds"para mí es el 22 de febrero de 2014 21:25:03 CET y si lo uso junto con el apagado, imprime "valor de tiempo no válido" (traducido al inglés). Entonces, su afirmación de que la versión que escribió funciona absolutamente en todas las versiones de Ubuntu es simplemente incorrecta. Si puedo especificar el formato hasta la fecha funciona, sin embargo, como esto: date --date "now +60 seconds" +%H:%M.
Zitrax
Intenté cambiar al idioma inglés, pero tampoco funcionó. Así que no estoy seguro de por qué funciona para ti.
Zitrax
Debe ser su versión del comando de apagado. Parece que la versión que viene con Ubuntu puede ser diferente. Es escrito por Scott Remnant de Conanical. Debe ser que acepta un rango más amplio de valores de entrada de fecha. Funciona para mí y al menos otros 3 que votaron.
Matt H