#1 Le 10/07/2012, à 19:29
- buzut
Controler si une commande est en cours [RÉSOLU]
Bonsoir à tous !
J'ai fait un script qui doit controller si le fichier php converter.php est lancé en cli, s'il ne l'est pas, on le lance, sinon on ne fait rien.
Le script fonctionnait parfaitement sur un autre serveur (ubuntu 12.04 64 bits), là il ne fonctionne pas sur un ubuntu 12.04 32 bits, c'est à dire que même si converter.php est déjà lancé, le script le relance quand même.
Voici le dit script :
#!/bin/bash
# if converter.php doesn't run, we start it
if ! ps ax | grep -v grep | grep /home/ubuntu/buzeo/modules/converter/converter.php
then
~/buzeo/modules/converter/converter.php
fi
je ne sais pas où est mon erreur, si un oeil avisé et une âme bienveillante passe dans le coin, un petit conseil ne serait pas de trop.
Merci d'avance
Dernière modification par buzut (Le 12/07/2012, à 12:13)
Hors ligne
#2 Le 10/07/2012, à 19:38
- nesthib
Re : Controler si une commande est en cours [RÉSOLU]
essaye de remplacer ta ligne par :
if ! ps ax | grep -q /home/ubuntu/buzeo/modules/converter/converter.ph[p]
si jamais ça ne fonctionne pas peux-tu donner le retour brut de :
ps ax | grep -i php
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
#3 Le 10/07/2012, à 19:49
- buzut
Re : Controler si une commande est en cours [RÉSOLU]
Merci de ta réponse rapide !
le dossier de l'utilisateur c'est buzeo, même nom que le dossier donc, pas ubuntu, mais pas d'erreur de ce côté là ! j'ai bien adapté ta commande
if ! ps ax | grep -q /home/buzeo/buzeo/modules/converter/converter.ph[p]
ça ne fonctionne pas, voici donc le retour que tu m'as demandé :
$ ps ax | grep -i php
8998 ? Ss 0:00 /bin/sh -c /home/buzeo/buzeo/modules/converter/converter.php
8999 ? S 0:00 /usr/bin/php /home/buzeo/buzeo/modules/converter/converter.php
9028 ? Ss 0:00 /bin/sh -c /home/buzeo/buzeo/modules/converter/converter.php
9029 ? S 0:00 /usr/bin/php /home/buzeo/buzeo/modules/converter/converter.php
9067 ? Ss 0:00 /bin/sh -c /home/buzeo/buzeo/modules/converter/converter.php
9068 ? S 0:00 /usr/bin/php /home/buzeo/buzeo/modules/converter/converter.php
9083 pts/1 S+ 0:00 grep --color=auto -i php
EDIT :
C'est résolu, j'avais pas les yeux en face des trous et ma crontab appelait directement le script php au lieu d'appeler le script bash qui doit controler si le script php tournait déjà… honte à moi !
Dernière modification par buzut (Le 10/07/2012, à 20:30)
Hors ligne
#4 Le 11/07/2012, à 01:02
- nesthib
Re : Controler si une commande est en cours [RÉSOLU]
ok je comprend mieux alors… parce que là je ne voyais pas ce qui pouvait clocher
(pense à mettre [résolu] au début de ton titre)
et tu peux toujours utiliser ma variante « ps … | grep -q ….ph[p] » qui économise un pipe et un grep
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
#5 Le 11/07/2012, à 08:14
- serged
Re : Controler si une commande est en cours [RÉSOLU]
Au lieu de pipe et de grep compliqué, pourquoi ne pas utiliser directement pgrep ?
if ! pgrep php
then
...
fi
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 11/07/2012, à 15:09
- nesthib
Re : Controler si une commande est en cours [RÉSOLU]
très bonne remarque
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
#7 Le 12/07/2012, à 12:14
- buzut
Re : Controler si une commande est en cours [RÉSOLU]
Yep pour pgrep, je n'y avais pas pensé ! Merci de vos conseils éclairés
Hors ligne