PDA

Visualizza la versione completa : Script Bash per monitorare processo


BlackBird
25-04-2008, 21:24
Salve,
è possibile creare uno script bash che lancio un programma e verifichi che resti in esecuzione.
Nel caso in cui il processo venga chiuso devo rilanciarlo...
è possibile?


Grazie

ntd
26-04-2008, 11:34
Sì, uno script che fa il respawning del processo è una cosa comune. Il mysqld_safe, per esempio, era (perché ora si preferisce un eseguibile compilato) uno script bash che rieseguiva mysqld.

Il problema semmai è fermarlo (all'uopo mysqld_safe usava un pid_file)...

Un approccio molto più semplice e naive (che funziona solo con i processi in foreground) può essere:



PROCESS="$(which gtk-demo)"

while true
do
$PROCESS
done

BlackBird
26-04-2008, 14:53
Grazie,
ho risolto in questo modo:



#!/bin/bash
clear
prg_check='rdesktop'
time_sleep=10


while [ 1=1 ]
do

prg_check_pid=`ps -all | grep $prg_check`

if [ -n "$prg_check_pid" ]; then
echo "Programma in esecuzione..."
else
echo "Programma non in esecuzione..."
rdesktop -f -r sound:off -r clipboard:off xx.yy.zz.kk
fi

sleep $time_sleep
done



Lo script funziona bene, volevo sapere se c'è un modo per farlo partire senza la possibilità di killarlo....

Grazie

Loading