#1 Le 15/09/2009, à 08:02
- oobuntu
[Résolu (avec at)][cron] démarre le script avant le logon
J'ai un petit script (gmail-check : on devine ce qu'il fait) que je lance par cron.
L'ennui c'est qu'il se lance même après un logoff, alors que j'ai l'invite de logon.
cron.log
Sep 15 07:30:01 HP2 anacron[9484]: Anacron 2.3 started on 2009-09-15
Sep 15 07:30:01 HP2 anacron[9484]: Normal exit (0 jobs run)
[b]Sep 15 07:40:01 HP2 /USR/SBIN/CRON[9868]: (oob) CMD (DISPLAY=:0 /home/frans/bin/gmail-check #JOB_ID_1)[/b]
auth.log
Sep 15 07:32:49 HP2 gdm[9530]: pam_unix(gdm:session): session closed for user oob
[b]Sep 15 07:40:01 HP2 CRON[9867]: pam_unix(cron:session): session opened for user oob by (uid=0)[/b]
Sep 15 07:40:38 HP2 gdm[9530]: pam_smbpass(gdm:auth): unrecognized option [missingok]
Sep 15 07:40:38 HP2 gdm[9530]: pam_unix(gdm:session): session opened for user oob by (uid=0)
Sep 15 07:50:01 HP2 CRON[10522]: pam_unix(cron:session): session opened for user oob by (uid=0)
En fait il semble que cron fasse un login utilisateur, comment éviter ce comportement ? (je vous le demande !)
Dernière modification par oobuntu (Le 15/09/2009, à 17:33)
Hors ligne
#2 Le 15/09/2009, à 10:07
- Hawkmoon
Re : [Résolu (avec at)][cron] démarre le script avant le logon
En fait il semble que cron fasse un login utilisateur, comment éviter ce comportement ? (je vous le demande !)
Tu ne peux pas, et au final, c'est normal. C'est le fonctionnement de cron.
A toi d'ajouter un contrôle pour savoir si une session est ouverte, dans ton script.
Tagazok à toi, mon frère !
Hors ligne
#3 Le 15/09/2009, à 11:18
- Ras'
Re : [Résolu (avec at)][cron] démarre le script avant le logon
Question bête, pourquoi le lancer par cron ?
J'ai aussi un check-gmail mais je le lance à l'ouverture de session...
Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
Les types awesome n'ont rien à prouver. À personne.
'k bye là
Hors ligne
#4 Le 15/09/2009, à 15:28
- oobuntu
Re : [Résolu (avec at)][cron] démarre le script avant le logon
@Hawkmoon
J'ai cherché un peu mais je ne sais pas très bien quoi utiliser (logname, whoami... )
Une idée ?
@Ras'
Je voulais éviter d'avoir le script qui tourne en permanence (sauf quand il y a des messages dans la boîte), j'utilise la synthèse vocale pour me signaler les messages entrants (nombre, expéditeur) et une notification zenity pour le visuel avec une icône grise quand il n'y a pas de message, rouge quand il y en a et cassée quand je ne peux pas me connecter au serveur(ça arrive).
C'est avec plaisir que je soummettrai mon script quand il sera pleinement opérationnel.
Dernière modification par oobuntu (Le 15/09/2009, à 15:29)
Hors ligne
#5 Le 15/09/2009, à 15:34
- Totor
Re : [Résolu (avec at)][cron] démarre le script avant le logon
Je voulais éviter d'avoir le script qui tourne en permanence (sauf quand il y a des messages dans la boîte), j'utilise la synthèse vocale pour me signaler les messages entrants (nombre, expéditeur) et une notification zenity pour le visuel avec une icône grise quand il n'y a pas de message, rouge quand il y en a et cassée quand je ne peux pas me connecter au serveur(ça arrive)..
Alors n'utilise pas cron mais combine ton script avec la commande at et lance-le à l'ouverture de ta session X.
at te permettra de planifier ton script de façon récursive (en gros, il s'auto planifie).
Par contre, il me semble que la planification n'est pas annulée en cas d'arrêt du PC et/ou de fermture de session.
-- Lucid Lynx --
Hors ligne
#6 Le 15/09/2009, à 15:47
- oobuntu
Re : [Résolu (avec at)][cron] démarre le script avant le logon
Alors n'utilise pas cron mais combine ton script avec la commande at et lance-le à l'ouverture de ta session X.
at te permettra de planifier ton script de façon récursive (en gros, il s'auto planifie).Par contre, il me semble que la planification n'est pas annulée en cas d'arrêt du PC et/ou de fermture de session.
Mais c'est pas bête du tout ça ! l'auto-planification pourquoi n'y ai-je pas pensé ?
Pour le deuxième point, il faut que je vérifie.
-------------------------------------------------------------------------------------
J'ai essayé mais il y a un problème avec zenity. En fait il faut faire précéder la commande par DISPLAY=:0.
Je pense que le problème des chemins est le même qu'avec cron. Heureusement l'expansion du $HOME se fait normalement.
Hum! J'ai fait l'essai dans un terminal en tapant d'abord
at now + 1 minutes
at>gmail-check
at><EOT>
job 6 at Tue Sep 15 16:16:00 2009
puis la commande puis Ctrl-D
C'est OK.
Mais comment entrer la ligne de commande directement (pour le script) j'ai essayé
at now + 1 minutes gmail-check
syntax error. Last token seen: g
Garbled time
Donc ce n'est pas ça
Dernière modification par oobuntu (Le 15/09/2009, à 16:34)
Hors ligne
#7 Le 15/09/2009, à 16:38
- oobuntu
Re : [Résolu (avec at)][cron] démarre le script avant le logon
Donc ce n'est pas ça
En fait y a-t-il un script bash quelque part qui fonctionne avec at ? zat iz ze kouechtionne.
Sinon, un petit up pour l'utilisation de cron (savoir si on est loggué ou pas).
Hors ligne
#8 Le 15/09/2009, à 16:49
- Totor
Re : [Résolu (avec at)][cron] démarre le script avant le logon
voilà qui devrait solutionner ton affaire :
export DISPLAY=:0 at now + 1 minutes <<< "gmail-check"
-- Lucid Lynx --
Hors ligne
#9 Le 15/09/2009, à 17:32
- oobuntu
Re : [Résolu (avec at)][cron] démarre le script avant le logon
voilà qui devrait solutionner ton affaire :
export DISPLAY=:0 at now + 1 minutes <<< "gmail-check"
En fait, ce qui marche c'est
at now + 10 minutes <<< "DISPLAY=:0 gmail-check"
Mais pourqui le 'export' ?
En tous cas merci.
Hors ligne