#1 Le 15/08/2012, à 22:26
- hugues
Surveiller l'existence d'un processus
Bonsoir,
J'aimerais avoir sur le bureau ou ailleurs, en tout cas dans un endroit rapidement et facilement visible, des informations sur l'existence ou non d'un processus en cours. Je suis sous 12.04 avec Unity.
Je m'explique : j'ai fait un script de surveillance d'apparition de nouveaux fichiers PDF dans un répertoire et d'impression automatique dudit fichier.
J'aimerais savoir à tout moment si le script est lancé, ou pas, sans devoir lancer le moniteur système.
Merci,
--
Hugues
Hors ligne
#2 Le 15/08/2012, à 22:48
- toulipe
Re : Surveiller l'existence d'un processus
Avec une notification, par exemple :
if pidof -x monscript.sh
then notify-send "Le processus est en cours"
else notify-send "Le processus est stoppé"
fi
Enfin, c'est un peu bête d'écrire un script qui vous apprendrait si oui ou non l'autre est en cours. Le plus simple serait d'ajouter une interface graphique minimale au premier script - qui, bien sûr, n'apparaîtrait pas systématiquement, si c'est ce que vous souhaitez. Voyez ça avec yad ou zenity.
Hors ligne
#3 Le 15/08/2012, à 23:13
- hugues
Re : Surveiller l'existence d'un processus
La commande 'notify-send' me semble particulièrement bien adapté et je pense pouvoir l'intégrer directement dans le script initial afin de bien affirmer sa "présence".
Par contre, j'aimerais que la notification soit permanente mais le suffixe '-t' ne semble pas bien fonctionne chez moi. Quelle que soit la valeur que j'utilise, la notification ne s'affiche que quelque secondes.
Merci beaucoup pour votre réponse.
--
Hugues
Hors ligne
#4 Le 15/08/2012, à 23:46
- Zakhar
Re : Surveiller l'existence d'un processus
Depuis la 12.04, les paramètres de notification autres que le texte, le titre et l’icône sont totalement ignorés.
Par exemple, il est impossible de rallonger la durée (ça tu l'as bien vu) ni de placer la notification ailleurs, bien que tout cela soit documenté. En fait c'est le système adopté par Ubuntu qui ne tient plus compte de ces paramètres là.
Avec Zenity, on peut afficher un indicateur dans la barre haute. Je ne sais plus comment on fait ça, mais en cherchant un peu dans les documentations vous devriez trouver votre bonheur !
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#5 Le 16/08/2012, à 00:06
- toulipe
Re : Surveiller l'existence d'un processus
Si vous voulez vraiment du permanent, il faut afficher une fenêtre, ou, si vous avez une zone de notification, une icone dans la zone de notification. Yad permet de faire ça, et il permet en outre de "rafraîchir" automatiquement soit une zone de texte, soit un tableau, soit une icône dans la zone de notification, en fonction de l'avancement d'un processus.
S'il s'agit seulement de savoir si le processus est en cours, vous pouvez vous contenter, par exemple, d'envoyer une icône dans la zone de notification, et de l'enlever à la fin du script. Si vous voulez, en plus, avoir des informations sur l'avancement du processus, vous pouvez faire en sorte de rediriger vers un fichier temporaire, soit la sortie standard de votre script
monscript.sh >> fichier_temporaire
soit sa sortie d'erreur
monscript.sh 2>> fichier_temporaire
soit les deux
monscript.sh >> fichier_temporaire 2>&1
et indiquer à yad, dans un autre script (ou dans une fonction intégrée dans le premier script, que vous appellerez au moyen d'un paramètre) de lire le fichier :
yad --text-info --tail < fichier_temporaire
. De cette manière, vous pouvez suivre en temps réel l'exécution de votre script, cela dans une boîte de texte qui se met automatiquement à jour dès que de nouvelles informations (celles que vous avez indiquées dans votre script) apparaissent. Et fermer la boîte de dialogue ne dérange pas l'exécution du processus.
Il est aussi possible de faire le même genre de choses avec les icônes de notification, en changeant à la volée le texte de l'infobulle, ou l'image de l'icône, ou le menu déroulant, selon l'état d'avancement de votre script.
Bref, il y a plein de possibilités, cela dépend de ce que vous préférez.
Pour yad, voyez http://code.google.com/p/yad/ et https://launchpad.net/~webupd8team/+arc … pa-manager
Bonne soirée
Hors ligne
#6 Le 16/08/2012, à 00:17
- Maisondouf
Re : Surveiller l'existence d'un processus
Zenity ne gère pas les notifications avec Unity
Même le scripte de démo du site Zenity ne marche pas
#!/bin/sh
zenity --notification\
--window-icon="info" \
--text="Mise à jour du système nécessaire !"
@toulipe: Je vais de ce pas découvrir 'yad', merci du tuyau
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#7 Le 16/08/2012, à 00:26
- Zakhar
Re : Surveiller l'existence d'un processus
Zenity ne gère pas les notifications avec Unity
Même le scripte de démo du site Zenity ne marche pas
Rhaa zut, au temps pour moi, j'en étais resté à la 10.04 où ça fonctionnait parfaitement.
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#8 Le 16/08/2012, à 00:31
- Maisondouf
Re : Surveiller l'existence d'un processus
@toulipe: à part le traditionnel '--help', il y a de la doc autrement qu'en polonais pour yad ??
j'ai testé le truc de base
yad --text-info "coucou"
J'ai une belle fenêtre avec un bouton OK mais pas le texte...
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#9 Le 16/08/2012, à 00:55
- toulipe
Re : Surveiller l'existence d'un processus
La doc, c'est
man yad
et c'est normalement en anglais. Après, je ne sais pas quelle est la version qui a été mise sur le ppa, car je ne l'ai pas utilisé, et ai compilé moi-même le paquet sous Debian. Voir ici pour le télécharger. Il devrait normalement fonctionner sans problème sous Ubuntu, car si l'on en croit l'auteur, gtk est la seule dépendance nécessaire.
Sinon, plutôt que
yad --text-info "coucou"
essayes
yad --text="coucou"
ou encore
echo coucou | yad --text-info
ou encore, pour s'amuser,
for i in $(seq 10) ; do echo "coucou $i" ; sleep 0.5 ; done | yad --text-info
Hors ligne
#10 Le 16/08/2012, à 00:58
- nesthib
Re : Surveiller l'existence d'un processus
tu peux aussi utiliser conky
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#11 Le 16/08/2012, à 01:16
- Maisondouf
Re : Surveiller l'existence d'un processus
@toulipe: ça y est, je me suis fais 'coucou'
Bien le man (643 lignes), j'approfondirais plus tard.
Merci
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#12 Le 16/08/2012, à 01:44
- Maisondouf
Re : Surveiller l'existence d'un processus
Effectivement avec conky, ça marche bien
Pour tester, faire une copie de sauvegarde du fichier /etc/conky/conky.conf et en faire un qui ne contient que cette directive en dessous de la ligne 'TEXT'.
${execi 1 ps -A | grep thunderbird}
Lancer 'conky' dans un terminal et ouvir 'thunderbird' .
Le pid de thunderbird va s'afficher et conky va verifier toutes les secondes.
On ferme thunderbird et la ligne disparait.
Magique, non ???
edit Ça permettra de voir si ça correspond au besoin
Dernière modification par Maisondouf (Le 16/08/2012, à 01:45)
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne