Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/05/2008, à 19:34

ubuntu45

[Résolu] - Bash : retarder une commande.

Bonjour,

     J'aimerais savoir si on peut retarder l'action d'une commande
par exemple :
Je veux que mon ordinateur s'arrête dans une heure mais je ne suis pas là.
     Je tape la commande pour retarder l'action de la commande puis shutdown -r

#2 Le 14/05/2008, à 19:42

Smoulsmoul

Re : [Résolu] - Bash : retarder une commande.

La commande "sleep" pourrait te convenir.
Par exemple pour que ton ordinateur fasse une commande dans une heure:

sleep 1h && commande

s : secondes (par défaut)
m: minutes
h: heures
d: jours

Dernière modification par Smoulsmoul (Le 14/05/2008, à 19:52)

Hors ligne

#3 Le 14/05/2008, à 19:53

ubuntu45

Re : [Résolu] - Bash : retarder une commande.

Merci Beaucoup big_smile:)

#4 Le 14/05/2008, à 20:40

Yannick_LM

Re : [Résolu] - Bash : retarder une commande.

Il y a le programme "at" qui peut servir à exécuter une commande à une date précise.
(je mentionne au cas où)

Et merci à Smoulsmoul, qui m'aura appris à utiliser sleep avec autres chose que des secondes cool

PS: signalé comme résolu


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#5 Le 14/05/2008, à 20:59

Totor

Re : [Résolu] - Bash : retarder une commande.

si ton besoin concerne uniquement la commande shutdown alors l'instruction sleep n'a aucun intérêt car shutdown le permet déjà :

shutdown -h hh:mm pour spécifier l'heure 
ou 
shutdown -h +m pour spécifier un délais en minutes 
ou 
shutdown -h now pour indiquer maintenant

au passage, tu remarqueras que j'ai mis -h (pour halt)et non -r (pour reboot)

sinon, petites précisions concernant l'utilisation de l'instruction sleep :
Certe, cela répond à ton besoin. Cependant tout dépend dans quel contexte tu l'utilises. Si c'est dans un terminal, alors tu es obligé de le laisser ouvert. sinon, le process sera killer au moment de la fermeture de ton terminal. Il n'y aura donc pas de shutdown. Pour contourner ce problème, il te faut lancer ta ligne de commande en fond de tâche (utilisation du &) ET détacher le process du terminal (utilisation de la commande nohup). Ce n'est pas pratique dans ton cas car ta commande est constituée de 2 instructions (sleep et shutdown) alors que nohup ne le permet pas. Cela t'oblige à l'encapsuler dans un script shell avant d'effectuer le nohup.

Tout ça pour te dire qu'il existe une instruction toute simple qui permet de la faire !
--> at

Cette commande permet de planifier une commande à une heure donnée (man at)
utilisation :

echo ta_commande | at HEURE

man /usr/share/doc/at/timespec pour les spécifications du format horaire.

Notes :
pour consulter la lste des  commandes programmées : atq
pour supprimer la programmation d'une commande : atrm num_tâche

PS : solution à ton pb de shutdown :

sudo nohup shutdown -h +60 &

j'avoue que je ne sais pas si le nohup est réellement utile dans ton cas... à toi de tester !

(le temps que je poste, at a été proposé, mais je laisse pour les explications qui précèdent)...

Dernière modification par Totor (Le 14/05/2008, à 21:14)


-- Lucid Lynx --

Hors ligne