Création
d'entreprise
Posez votre question Signaler

Linux : Savoir si un process toure ou pas

guigeek - Dernière réponse le 9 janv. 2008 à 23:10
Bonjour,
Je cherche sous Linux (en fait sur un Synology) à ne lancer une commande que si un process ne tourne pas... Je ne connait pas son PID, uniquement sa description
Donc en gros, je lance mon script via le cron. Si "wget" tourne, il ne fait rien. Si "wget" ne tourne pas, il execute une commande.
J'ai pensé à un
if [ps -ax | grep 'wget']
then
wget http://www.site.org/rep/01/fichier.txt
fi
Est ce que ca a une chance de marcher ? (je n'ai pas accès a mon Linux avant demain soir...)
Merci par avance
Guigeek
Lire la suite 

Linux : Savoir si un process toure ou pas »

8 réponses
Réponse
+3
moins plus
Salut,

Non, aucune ;-(

En fait c'est pas la commande qu'il faut tester, mais le code retour de cette commande ($?).
De plus il existe une commande sous GNU/Linux qui combine la recherche "grep" d'un processus via la commande "ps", elle s'appelle "pgrep".
[tmpfs]$ pgrep firefox-
4120

[tmpfs]$ echo $?
0

[tmpfs]$ pgrep ftp
[tmpfs]$ echo $?
1
[tmpfs]$
Donc je suppose qu'un simple :
pgrep wget
retval=$?
if [ "$retval" = 1 ]
then
wget http://www.site.org/rep/01/fichier.txt
fi 
Si la commande n'est pas présente sur ton système, remplace la par :
ps -e | grep wget
;-))
Ajouter un commentaire
Réponse
+1
moins plus
bien joué la ruse !
jipicy- 9 janv. 2008 à 23:10
Ouais, mais malheureusement elle n'est pas de moi ;-((

Mais bon, le jour où je l'ai lue, j'ai mis ça dans une de mes rares cases mémoires qui fonctionnent ;-)))
Ajouter un commentaire
Réponse
+0
moins plus
je suis pas certain de la syntaxe, mais je ne voi pas pourquoi ça ne fonctionnerai pas.
Par contre, attention aux : *wget*
tu peux l'avoir dans windowget par exemple.
peut être un grep ' wget ' fonctionnerzai mieux
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour faire avancer le shmilblick...

La commande n'est pas présente, dont j'utilise ta seconde solution.

problème, il se trouve lui même et me renvoie deux lignes...

ps -e | grep wput
9779 root 620 S wput
11155 root 216 S grep wput

as tu une idée ?

Merci par avance
Ajouter un commentaire
Réponse
+0
moins plus
pour info, j'ai fait le test là avec wput au lieu de wget, mais le principe est le même...
Ajouter un commentaire
Réponse
+0
moins plus
ps -e | grep w[p]ut 
;-))
Ajouter un commentaire
Réponse
+0
moins plus
Ca Marche.

T'est un dieu.

Je t'aime.

Bon, je m'emballe mais j'y ai passé trop de temps pour pas m'enflammer...

C'est comme ca qu'on apprends, mais quand même ...

Encore merci
Ajouter un commentaire
Ce document intitulé « Linux : Savoir si un process toure ou pas » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?