Arrêt de Linux en 30 secondes?

8

Question simple: quels paramètres peuvent être utilisés pour arrêter un ordinateur exécutant Linux / OSX en 30 secondes? J'ai toujours exécuté Windows, où j'irais shutdown -s -t 30mais les paramètres sont différents. Je l'ai regardé ici, mais cela ne vous permettra d'éteindre un ordinateur qu'à une heure spécifique (comme 8h00) plutôt que dans un nombre spécifique de secondes.

icnhzabot
la source

Réponses:

8

Sous OS X, vous pouvez arrêter en une minute à l'aide de la commande suivante:

sudo shutdown -h +1

AFAIK, il n'est pas possible de spécifier des secondes au lieu de minutes avec cette commande.

Vous pouvez également redémarrer en utilisant -rau lieu de -h.


ÉDITER:

Comme vous l'avez mentionné dans votre commentaire, vous pouvez ajouter un délai par programme, puis arrêter le système immédiatement avec

shutdown -h now

Mais notez que cette commande nécessitera un accès root.

Austin
la source
meh. Donc, n'utilisez pas de décimales. Je suppose que ça va, je me demandais parce que j'essaie de travailler sur une application Java multiplateforme qui peut arrêter un ordinateur. Je pouvais donc le faire dormir pendant 30 secondes avant de m'arrêter immédiatement. Mais l' sudo shutdown -harrêt de l'ordinateur se ferait -il sans retard intentionnel?
@icnhzabot sudo shutdown -h nowarrêterait immédiatement l'ordinateur sans avertissement.
Austin
OK merci. donc pour l'accès root, je devrais faire sudo shutdown -h nowbien?
icnhzabot
@icnhzabot Cela ne fonctionnera pas pour un script / programme automatisé car il invite l'utilisateur à saisir son mot de passe administrateur sur la ligne de commande. Vous devez exécuter votre script en tant que root et simplement appeler shutdown -h now. Si vous avez besoin d'aide, vous devez poser une nouvelle question (en supposant que vous ne puissiez pas trouver la réponse ailleurs). N'oubliez pas non plus de marquer ici la meilleure réponse comme «acceptée» si elle répond à votre question.
Austin
3

En utilisant les appels de base, je ne vois pas de moyen de le faire en quelques secondes, mais il semble que vous puissiez le faire en quelques minutes:

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 d'autres termes:

shutdown -h +1

Si vous voulez l'arrêter en 1 minute.


la source
savez-vous si cela fonctionnerait avec .5?
Il y a une erreur ici - l' -roption est pour le redémarrage, pas pour l'arrêt. Vous devez utiliser -hpour l'arrêt.
Austin
@Austin ugh, a corrigé cela en ligne.
3

Comme indiqué, la commande

sudo shutdown -h +1

Ajoute une minute.

Si vous vouliez le faire en quelques secondes ou heures ou quelque chose de très spécifique, vous pourriez faire quelque chose comme:

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

EDIT: ce qui précède ne fonctionne plus sur les versions plus récentes d'Ubuntu. Merci d'avoir signalé cela à @zitrax. Mon erreur, tu as raison.

Mais vous pouvez toujours le faire, mais cela semble peut-être à la minute près.

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

Ce qui est quelque peu inutile lorsque le paramètre + m est plus facile à taper .... ahhh oh bien.

Matt H
la source
Ne fonctionne pas (au moins sous linux), cela donne l'heure dans un autre format que prévu.
Zitrax
@Zitrax, ce n'est pas parce qu'il n'a pas fonctionné dans votre cas qu'il ne fonctionne pas dans toutes les versions de Linux. Je voudrais que vous notiez également le backtick «est différent d'une simple citation». Je suppose que c'est pourquoi cela n'a pas fonctionné pour vous. Cela fonctionne absolument dans toutes les versions d'Ubuntu depuis au moins 10.04. Et comme Ubuntu est basé sur Debian, cela fonctionnera également. Il serait peut-être plus constructif de dire «ne fonctionne pas sur…» plutôt de voter en bas et de faire une déclaration générale. Linux est un terme générique, ce n'est pas une version. Mais je pense que vous l'avez mal tapé. Réessayer.
Matt H
1
J'ai réessayé sur ma machine personnelle et ça ne marche pas non plus. Je sais comment ça marche. J'ai donc essayé Ubuntu 13.10 et Kubuntu 13.10. Serait-ce que j'utilise un environnement local différent? La sortie de date --date "now + 60 seconds"pour moi est lör 22 fév 2014 21:25:03 CET et si j'utilise cela avec l'arrêt, il imprime "valeur temporelle invalide" (traduit en anglais). Donc, votre déclaration selon laquelle la version que vous avez écrite fonctionne absolument dans toutes les versions d'ubuntu est tout simplement fausse. Si je précise le format à ce jour , il fonctionne bien, comme ceci: date --date "now +60 seconds" +%H:%M.
Zitrax
J'ai essayé de passer aux paramètres régionaux anglais, mais cela n'a pas fonctionné non plus. Je ne sais donc pas pourquoi cela fonctionne pour vous.
Zitrax
Doit être votre version de la commande d'arrêt. Il semble que la version fournie avec Ubuntu puisse être différente. Il est écrit par Scott Remnant de Conanical. Il doit être qu'il accepte une plus large gamme de valeurs d'entrée de date. Fonctionne pour moi et au moins 3 autres qui ont voté.
Matt H