# \[Résolu\] Bash - Script de vérification d'un processus

**URL:** <https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796 "2016-02-20T15:08:43Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/1 "2016-02-20T15:08:43Z")

</div>

Salut à tous,

J’aimerai crée un petit script qui me permet de checker un processus et qu’au bessoin si ce processus est manquant de la relancer, car j’ai un petit script pour mon squid qui me permet de faire des stats. je vous le mets ici plus bas ( c’est un petit script de débutant)

`#! /bin/sh
echo "Killing Squid"
/etc/rc.d/init.d/squid stop
echo "Wait 2 min"
sleep 120
echo "Prostat running ..."
/usr/local/bin/prostat +g/usr/local/prostat/prostat.conf /var/log/squid/access.log 2> /var/log/prostat/dimanche.log
echo "Delete the old archive"
rm -rf /var/log/squid/archives/access.log.gz
echo "Move the old access.log.gz"
mv /var/log/squid/access.log.gz /var/log/squid/archives
echo "Compress the old archive"
/bin/gzip /var/log/squid/access.log
echo "Make a new access.log"
cp -p /var/log/squid/archives/access.log /var/log/squid/
cd /var/log/squid/ & chown -R squid:squid .
echo "Launch Squid"
squid
echo "Finished"`

ce script est programer dans Cron pour se lancer tout les dimanche a 00h

Le prob c’est que des fois le process Squid ne relance pas et j’aimerai evité ce problème. Et crée un processus qui checkerai que squid est bien lancer (que je metterai dans cron pour qu’il verifie tous les X temps.

[code]#! /bin/sh  
echo "vérifié la présence du processus"  
ps -aux | grep squid \> a

if [$a =null] then  
squid  
elif [$a !=null] then  
exit  
[/code]

Efin ce code doit etre du n’importe quoi j’ai de grosse lacune en programation, d’ou j’ai du mal à faire des scripts complexe.

Si vous pouvoez me mettre sur la voie, se serais sympas.

Merci 🙂

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/2 "2016-02-20T15:08:44Z")

</div>

[quote]if [$a =null] then  
squid  
elif [$a !=null] then  
exit [/quote]  
Tu es sûr de ça ?

---

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/3 "2016-02-20T15:08:44Z")

</div>

Non non je suit sur de rien, mais j’essaye de montrer mon raissonement. 😛

[Edit]

```auto
#! /bin/sh
echo "vérifié la présence du processus"
ps -aux | grep squid > a

if [$a =null] then
squid
if [$a !=null] then
exit 
```

C’estr mieux comme ca ?

j’ai aucun sens de prog, d’ou je fait appel a votre aide 🙂

---

<div class="post-metadata">

**Author:** ![BorisTheButcher](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/d6d6ee/32.png) [@BorisTheButcher](https://www.debian-fr.org/u/BorisTheButcher)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/4 "2016-02-20T15:08:45Z")

</div>

C’est equivalent a

```auto

```

J’utilise souvent ca pour d’autres processus.  
Par contre faut absolument mettre le path complet surtout si tu le lance en root…

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/5 "2016-02-20T15:08:45Z")

</div>

`#! /bin/sh
echo "vérifié la présence du processus"
if pidof squid ; then
echo "squid présent"
else
squid
fi
`

serait ton script corrigé.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/6 "2016-02-20T15:08:45Z")

</div>

`pidof squid || squid`marche aussi

---

<div class="post-metadata">

**Author:** ![stonfi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/54ee81/32.png) [@stonfi](https://www.debian-fr.org/u/stonfi)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/7 "2016-02-20T15:08:45Z")

</div>

hello,

J’avais un peu de times à tuer :

[code]  
#!/bin/sh

processus=squid  
ok=1

function get\_ps() {  
pps=`which ps`  
arg=‘aux’  
$pps $arg  
}

function get\_process() {  
wrap=`which grep`  
get\_ps | $wrap $processus  
}

function get\_pid() {  
kut=`which awk`  
$kut ‘{print $2}’  
}

check=`get_process | get_pid`  
if [-n “$check”]  
then  
echo "En route"  
ok=1  
else  
echo "Pas en route"  
ok=0  
fi[/code]

---

<div class="post-metadata">

**Author:** ![BorisTheButcher](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/d6d6ee/32.png) [@BorisTheButcher](https://www.debian-fr.org/u/BorisTheButcher)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/8 "2016-02-20T15:08:49Z")

</div>

> [@](#):
>
> `pidof squid || squid`marche aussi

Yes à un ou deux details près:  
Si on utilise bastille, il blinde la sécurité sur killall5:

`lrwxrwxrwx 1 root root 16 2006-09-27 11:13 /bin/pidof -> ../sbin/killall5
-rwxr-x--- 1 root root 10212 2006-09-26 15:11 /sbin/killall5
`  
Et j’ai trouvé des unix qui n’avait pas de pidof.

Mais sinon c’est pareil effectivement.

---

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/9 "2016-02-20T15:08:50Z")

</div>

Grand merci de votre aide, je vais pouvoir tester ca aujourd’hui même 🙂

---

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/10 "2016-02-20T15:08:50Z")

</div>

[quote=“stonfi”]hello,

J’avais un peu de times à tuer :

[code]  
#!/bin/sh

processus=squid  
ok=1

function get\_ps() {  
pps=`which ps`  
arg=‘aux’  
$pps $arg  
}

function get\_process() {  
wrap=`which grep`  
get\_ps | $wrap $processus  
}

function get\_pid() {  
kut=`which awk`  
$kut ‘{print $2}’  
}

check=`get_process | get_pid`  
if [-n “$check”]  
then  
echo "En route"  
ok=1  
else  
echo "Pas en route"  
ok=0  
fi[/code][/quote]

Désolé de t’avoir fait perdre ton temps, mais il marche pas ton script, et il est trop compliqué pour que je trouve le truc qui va pas 🙂

J’ai donc utilisé celui-ci:

`
#! /bin/sh
echo "Vérifié la présence du processus"
if pidof squid ; then
echo "Squid présent"
else
squid
echo "Squid relancé"
fi `

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/11 "2016-02-20T15:08:51Z")

</div>

Si je peux me permettre une remarque: “Squid relancé” (participe passé en français=adjectif s’appliquant au squid), pas “Squid relancer” (infinitif qui n’a pas sa place dans le contexte).  
 ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")  
PS: pour une fois que stonfi est verbeux, vas pas l’ennuyer, même si c’est vrai que c’est un peu long…

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/12 "2016-02-20T15:08:51Z")

</div>

ah et sinon, pour faire dans le court, ce que tu as écrit doit pouvoir se contracter de la manière suivante:

```auto

```

---

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/13 "2016-02-20T15:08:52Z")

</div>

[quote=“MattOTop”]Si je peux me permettre une remarque: “Squid relancé” (participe passé en français=adjectif s’appliquant au squid), pas “Squid relancer” (infinitif qui n’a pas sa place dans le contexte).  
 ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")  
PS: pour une fois que stonfi est verbeux, vas pas l’ennuyer, même si c’est vrai que c’est un peu long…[/quote]

Humm permet toi, l’orthorthographe n’est pas mon fort. 😆

Ps: Stonfi je voulais pas t’embeter, mais juste te le signifié 😛

---

<div class="post-metadata">

**Author:** ![BorisTheButcher](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/d6d6ee/32.png) [@BorisTheButcher](https://www.debian-fr.org/u/BorisTheButcher)\
**Post date:** [Février 20, 2016, 3:08 UTC](https://www.debian-fr.org/t/resolu-bash-script-de-verification-dun-processus/4796/14 "2016-02-20T15:08:52Z")

</div>

[quote=“MattOTop”]ah et sinon, pour faire dans le court, ce que tu as écrit doit pouvoir se contracter de la manière suivante:

```auto

```

J’ai pas osé 🙂  
Je code tous mes scripts de la sorte, pas besoin de if pour un truc si simple  
Small is beautiful 😒
