#!/bin/bash # autorun.sh by Ondrej Jombik, 22.9.2000 # Toto je autorun-script na kontrolu nahodeneho scriptu. Funguje tak, ze # ku kazdemu scriptu, ktory chceme kontrolovat musime vytvorit jeden # takyto autorun-script. Tento autorun-script zapiseme do crontab. Potom # bude v pravidelnych casovych intevaloch kontrolovat nas script, ci bezi. # Pokial script nebezi, tak ho autorun-script znovu nahodi. # Adresar spustaneho scriptu. scriptdir="$HOME/autorun/" # Nazov spustaneho scriptu. script="maxzaw.sh" ############################################################################# cd $scriptdir # Existuje PID subor? if [ -r $script.pid ]; then scriptpid=`cat $script.pid` if `kill -CHLD $scriptpid >/dev/null 2>&1`; then exit 0 fi echo "PID file '$script.pid' found." echo "Invalid PID ($scriptpid), script '$script' probably not running." echo "Removing '$script.pid'." rm -f $script.pid else echo "PID file '$script.pid' not found, script '$script' not running." fi # PID subor neexistuje. Vytvorime ho. # K tomu potrebujeme jeden specialny externy program. # Existuje tento program? if [ -r get_parent_pid ]; then echo "Program 'get_parent_pid' found." else echo "Program 'get_parent_pid' not found." echo "Creating '$script.get_parent_pid.c'." echo -E "#include" > $script.get_parent_pid.c echo -E "#include" >> $script.get_parent_pid.c echo -E "int main(void){printf(\"%d\n\",getppid());return(0);}" >> $script.get_parent_pid.c echo "Compiling '$script.get_parent_pid.c', creating program 'get_parent_pid'." cc -Wall $script.get_parent_pid.c -o get_parent_pid fi # Odstranime zdrojaky if [ -r $script.get_parent_pid.c ]; then echo "Removing '$script.get_parent_pid.c'." rm -f $script.get_parent_pid.c fi # Vytvorime PID subor. echo "Using program 'get_parent_pid', creating '$script.pid'." ./get_parent_pid > $script.pid # Nahodime script. echo "Running '$script'." ./$script # Script skoncil. Zmazeme PID. echo "Script '$script' finished (killed), removing PID file '$script.pid'." rm -f $script.pid # Koncime. echo "Terminating..." exit 0