Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 ! roll

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 smile

(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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 smile

Hors ligne