Arrêt automatique à des moments précis?


18

Je sais que je peux utiliser (sudo?) shutdown -h hh:mmDans une fenêtre de terminal pour arrêter un système, mais l'utilisateur qui est connecté est un utilisateur de kiosque, qui est verrouillé de manière à ce que le terminal (ou toute autre fenêtre que Firefox , d'ailleurs) ne peut pas être ouvert.

Ma question est la suivante:
existe-t-il un moyen de le faire sans ouvrir une fenêtre de terminal? J'ai lu sur cron, mais je n'arrive pas à comprendre.
Comment puis-je changer l'heure de fermeture en fonction de quel jour il s'agit?


Voulez-vous arrêter à 02h00?
αғsнιη

Non, désolé, c'est exactement ce qui a été utilisé dans l'exemple que j'ai lu. Habituellement à 11h30, mais je me demandais s'il y avait un moyen de spécifier des heures différentes pour des jours différents?
MrAxlee

1
Vous pouvez référer l'URL pour l'arrêt automatique. askubuntu.com/questions/19774/…
vembutech

1
@vembutech Cette question est pour l'arrêt après une certaine période de temps - pas pour un arrêt à une certaine heure - mais bien qu'il soit facile de l'adapter à mes besoins, je ne peux toujours pas exécuter d'autres fenêtres que Firefox. Merci pour votre réponse! Cela semble beaucoup plus simple que d'utiliser cron, et je vais probablement l'utiliser pour d'autres utilisations :)
MrAxlee

@MrAxlee ... Donc, vous voulez que le système s'arrête n heures après avoir été allumé ?
Kaz Wolfe

Réponses:


30

Cron fonctionnera très bien pour cela.

Ajoutez la ligne ci-dessous (avec des ajustements) à la fin de /etc/crontab:

30 23 * * * root shutdown -h now

À 23h30 (23h30), le kiosque fermera. Quel que soit l'utilisateur connecté, la commande shutdown s'exécute en tant que root.

(Si vous ne souhaitez pas utiliser la crontab globale, connectez-vous en tant que root et utilisez crontab -e. Utilisez la même syntaxe ci-dessus sans le root).


Format Cron:

MM HH DD OO WW command

MM: Minute, 0-59
HH: 24 heures
DD: Jour du mois
OO: Mois
WW: Jour de la semaine (le dimanche est 0, le lundi est 1)
command: Auto-explicatif


@JacobVlijm Quand a-t-il été ajouté? Je ne le vois pas dans les documents officiels de Cron .
Kaz Wolfe

1
Je vais chercher ...
Jacob Vlijm

1
de crontab (5): Le format du système crontab, / etc / crontab inclut une colonne who qui n'existe pas dans les crontabs utilisateur. Dans la crontab système, cron exécute la commande en tant qu'utilisateur spécifié dans cette colonne. Dans un crontab utilisateur, toutes les commandes s'exécutent en tant qu'utilisateur qui a créé le crontab.
Jacob Vlijm

@Whaaaaaat Excellente réponse, fonctionne parfaitement, merci !. Quelle est la différence entre -het -s?
MrAxlee

1
@MrAxlee -sne semble pas être une "syntaxe appropriée". -hmoyen d' arrêter ou d'arrêter le système (choix du système - arrêt préféré)
Kaz Wolfe

6

Un cronjob semble être le meilleur moyen car vous pouvez spécifier des heures différentes pour des jours différents. Sur les systèmes basés sur Gnome, vous pouvez simplement installer GNOME Shedule Tasks en utilisant

sudo apt-get install gnome-schedule

puis configurez le cronjob à l'aide de l'interface graphique.

sinon vous devrez utiliser sudo crontab -epuis ajouter les lignes suivantes

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

cela arrêterait le PC à 11h30 du lundi au vendredi et à 10h30 le samedi et le dimanche. La structure est très simple:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

Pour plus d'informations à ce sujet, vous pouvez également consulter CronHowto


2
J'ai dû utiliser spécifiquement /sbin/shutdownau lieu de shutdownparce que mon chemin d'accès cron racine était différent de celui du terminal dans lequel j'ai essayé mon script.
Jaakko

3

Nous pouvons arrêter automatiquement à l' heure spécifiée par la commande en cours d' exécution simplement sudo poweroffen crontab.

Si vous souhaitez arrêter le système à 18h30 tous les jours. Tapez dans le terminal:

sudo crontab -e

Éditer

30 18 * * * poweroff

@mrm Il existe des méthodes alternatives, il pourrait y avoir de nombreuses solutions différentes à un problème particulier et les réponses ainsi. N'est-ce pas une réponse utile ou non? S'il vous plaît, je vous demande de ne pas voter pour répondre ou poser des questions si vous n'êtes pas clair à ce sujet. Lisez la question correctement et voyez si la réponse s'applique à cette question spécifique ou non. Si vous avez toujours un dilemme, vous êtes libre de demander sur Ask Ubuntu Meta ou ici et ensuite de prendre une décision.
marguerite

Dans une ligne crontab, vous avez deux problèmes: poweroffignore les scripts d'arrêt, qui peuvent être importants, par exemple, pour arrêter votre base de données en toute sécurité ou autre chose, et vous avez sudoun fichier crontab dans une racine qui n'est pas nécessaire. Vous n'avez pas non plus expliqué comment référencer différents jours de la semaine comme la question posée. Donc non, ce n'est pas une méthode alternative. En l'état, ce sont deux erreurs et une omission. Les deux autres réponses apportées un an avant la vôtre sont correctes et fonctionnent réellement.
mrm

@mrm Eh bien, j'utilise ce script depuis trois ans et je n'ai vu aucun problème. Et oui cette alternative et aussi la méthode utile correcte. Que soit l'arrêt automatique à des heures spécifiées. Il y a une commande pour arrêter et pour le temps spécifié automatiquement, nous pouvons utiliser crontab selon nos besoins. Il serait préférable pour vous que vous posiez une question différente concernant votre problème.
marguerite
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.