Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.os.unix > #8108 > unrolled thread
| Started by | Thomas <fantome.forums.tDeContes@free.fr.invalid> |
|---|---|
| First post | 2023-08-23 14:18 +0200 |
| Last post | 2023-08-24 05:49 +0000 |
| Articles | 4 — 2 participants |
Back to article view | Back to fr.comp.os.unix
sleep incluant le temps de veille Thomas <fantome.forums.tDeContes@free.fr.invalid> - 2023-08-23 14:18 +0200
Re: sleep incluant le temps de veille Marc SCHAEFER <schaefer@alphanet.ch> - 2023-08-23 15:14 +0000
Re: sleep incluant le temps de veille Thomas <fantome.forums.tDeContes@free.fr.invalid> - 2023-08-24 02:07 +0200
Re: sleep incluant le temps de veille Marc SCHAEFER <schaefer@alphanet.ch> - 2023-08-24 05:49 +0000
| From | Thomas <fantome.forums.tDeContes@free.fr.invalid> |
|---|---|
| Date | 2023-08-23 14:18 +0200 |
| Subject | sleep incluant le temps de veille |
| Message-ID | <uc4tfb$2tlhg$1@dont-email.me> |
bonjour :-) est-il possible aujourd'hui, avec les OS POSIX (ou à la rigueur les Linux standards), de fabriquer un sleep qui prenne en compte le temps de veille de l'ordi ? Sans cet outil, pour faire la même chose, on est obligé de faire un sleep de 10 ms et de faire les calculs à la main dans le shell appelant. Il me semble que le noyau a déjà un comportement similaire pour gérer l'ensemble des processus, c'est dommage de faire doublon ... -- RAPID maintainer http://savannah.nongnu.org/projects/rapid/
[toc] | [next] | [standalone]
| From | Marc SCHAEFER <schaefer@alphanet.ch> |
|---|---|
| Date | 2023-08-23 15:14 +0000 |
| Message-ID | <uc57oo$tga$2@shakotay.alphanet.ch> |
| In reply to | #8108 |
On Wed, 23 Aug 2023 14:18:51, Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote: > est-il possible aujourd'hui, avec les OS POSIX (ou à la rigueur les > Linux standards), de fabriquer un sleep qui prenne en compte le temps de > veille de l'ordi ? Intéressant, je verrais une solution classique, de mémoire: # je veux à 17:13, donc la mise en veille n'a pas d'importance echo 'ta commande' | at 17:13 (toutefois, si la machine est "éteinte" au moment où l'on atteint 17:13, il est possible que cela ne marche pas, j'ai regardé en travers `man at' et ce n'est pas clair schaefer@shakotay:~$ echo blabla | at 18:15 warning: commands will be executed using /bin/sh job 1 at Wed Aug 23 18:15:00 2023 schaefer@shakotay:~$ atq 1 Wed Aug 23 18:15:00 2023 a schaefer ce qui précède semblerait montrer que at est capable en théorie de voir que l'événement est passé). > Sans cet outil, pour faire la même chose, on est obligé de faire un > sleep de 10 ms et de faire les calculs à la main dans le shell appelant. > Il me semble que le noyau a déjà un comportement similaire pour gérer > l'ensemble des processus, c'est dommage de faire doublon ... En cherchant rapidement, je n'ai pas trouvé de meilleur mécanisme, ni de mécanisme centralisé. -- Attention: limitez le nombre de lignes de citation à l'essentiel, sinon je 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.
[toc] | [prev] | [next] | [standalone]
| From | Thomas <fantome.forums.tDeContes@free.fr.invalid> |
|---|---|
| Date | 2023-08-24 02:07 +0200 |
| Message-ID | <uc670v$3511g$2@dont-email.me> |
| In reply to | #8110 |
Le 23/08/2023 à 17:14, Marc SCHAEFER a écrit : > On Wed, 23 Aug 2023 14:18:51, Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote: >> est-il possible aujourd'hui, avec les OS POSIX (ou à la rigueur les >> Linux standards), de fabriquer un sleep qui prenne en compte le temps de >> veille de l'ordi ? > > Intéressant, je verrais une solution classique, de mémoire: > > # je veux à 17:13, donc la mise en veille n'a pas d'importance > echo 'ta commande' | at 17:13 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). > > (toutefois, si la machine est "éteinte" au moment où l'on atteint 17:13, > il est possible que cela ne marche pas, j'ai regardé en travers `man at' > et ce n'est pas clair quand tu dis "éteinte" avec des guillemets, tu veux dire "en veille" ? Si qqch est capable de réveiller la machine pour exécuter un processus "programmé", c'est intéressant à savoir :-) mais à cette étape je n'en suis pas là. Je souhaite juste ne pas attendre plus longtemps à la sortie de la veille si le temps total est écoulé (mais pas le temps "hors veille"). > >> Sans cet outil, pour faire la même chose, on est obligé de faire un >> sleep de 10 ms et de faire les calculs à la main dans le shell appelant. >> Il me semble que le noyau a déjà un comportement similaire pour gérer >> l'ensemble des processus, c'est dommage de faire doublon ... > > En cherchant rapidement, je n'ai pas trouvé de meilleur mécanisme, ni de > mécanisme centralisé. > je lance l'idée à tout hasard. 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 ...) -- RAPID maintainer http://savannah.nongnu.org/projects/rapid/
[toc] | [prev] | [next] | [standalone]
| From | Marc SCHAEFER <schaefer@alphanet.ch> |
|---|---|
| Date | 2023-08-24 05:49 +0000 |
| Message-ID | <uc6r23$p1$2@shakotay.alphanet.ch> |
| In reply to | #8113 |
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, sinon je 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.
[toc] | [prev] | [standalone]
Back to top | Article view | fr.comp.os.unix
csiph-web