Sujet : Re: sleep incluant le temps de veille
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.comp.os.unixDate : 24. Aug 2023, 06:49:55
Autres entêtes
Organisation : Posted through news.alphanet.ch
Message-ID : <uc6r23$p1$2@shakotay.alphanet.ch>
References : 1 2 3
User-Agent : tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-25-amd64 (x86_64))
On Thu, 24 Aug 2023 02:07:59, Thomas <
fantome.forums.tDeContes@free.fr.invalid> wrote:
j'ai déjà essayé cette commande sur mon vieux mac,
et si je me souviens bien, il y avait un énorme défaut c'est que chaque
script appelé avec at l?était depuis root au lieu de l?être depuis le
script qui appelle at, donc perte de toutes les variables, du répertoire
courant, etc ... (et je ne sais même plus si en plus on était pas
carrément root au moment de l?exécution).
Alors, si tu lances sous un utilisateur normal (s'il a les droits de
lancer at, cf man at), c'est avec les droits de l'utilisateur normal
que ton script ou ta commande sera lancée.
Bien évidemment, c'est à toi de mettre au début du script l'ensemble des
paramétrisations que tu veux faire.
quand tu dis "éteinte" avec des guillemets, tu veux dire "en veille" ?
oui, et tous les autres cas où sleep ne peut pas s'exécuter.
Si qqch est capable de réveiller la machine pour exécuter un processus
"programmé", c'est intéressant à savoir :-)
oui, c'est possible aussi.
Si rien n'est prévu dans le noyau pour donner cette possibilité,
peut-être que ça donnera des idées aux concepteurs du noyau (si jamais
ça remonte jusqu'à eux ...)
En fait, je trouve le concept d'un programme qui est tout le temps en
fonction et qui fait des sleeps très curieux.
J'aurais tendance à découper ce programme en deux services:
1) un service à exécution au démarrage de la machine
2) un service à exécution de tâches régulières
1) c'est assez facile à faire: sous un utilisateur normal avec un cron
qui le supporte, ajouter un @reboot
2) c'est cron (ou at)
Comme je ne sais pas quel grain ton programme a besoin (se réveille-t-il
toutes les 3 secondes? toutes les 3 heures? fait-il un travail de 1
seconde? de 10 minutes?), c'est difficile d'aller plus loin.
Dans des cas simples, oui, un simple sleep 1 puis calcul sur date "+%s"
de la différence en seconde peut parfaitement suffire et sera
super-portable.
-- Attention: limitez le nombre de lignes de citation à l'essentiel, sinonje ne verrai pas votre réponse. Et si vous écrivez souvent des bobards,je ne vous lirai plus et je recommanderai (NoCeM) de ne plus vous lire.