Aller au contenu

[RESOLU] redemarrage d'un service


Messages recommandés

bonjour tout le monde!!

j'ai une petite question sur le redémarrage d'un sevice sous Linux (RedHat 7.3):

j'ai un service (caagent, c'est un agent de sauvegarde du logiciel de backup Arcserve) qui de temps en temps s'arrête et je bne sais absolument pas pourquoi.. je suis aller voir dans les logs de cet agent, et il n'y avait rien de concret..

ce que je cherche à faire, c'est de faire redémarrer le service automatiquement lorsqu'il s'arrête... je sais faire sous Windows (dans les propriétés des services) mais sous Linux j'en ai aucune idée...

Est-ce que c'est possible?? si oui, comment on peut faire?

Merci d'avance,

Lien vers le commentaire
Partager sur d’autres sites

Perso je ferais cela par script.

Un je teste si les focntions du deamon réponde bien à intervall régulier.

Si cela ne marche pas je vérifie que le deamon est n'est plus présent si c'est le cas c'est qu'il est craché

Je récupère le PID je le kill et je relance le deamon via mon fichier Init ....

Facile non?

Lien vers le commentaire
Partager sur d’autres sites

Oui j'aurais dit pareil.

M'enfin c'est louche que ne trouves rien dans les logs ? Surtout pour un crash comme ça. Il n'y a pas un rang level dans le fichier de conf pour les logs ?

Perso j'ai le problème avec une application elle crash sans raison .... :dd:

Du coup j'ai un script qui fait cela

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
  • 2 semaines après...

script home made assez simple

à modifier

( il teste la connection vpn, si vpn inactif alors il tue les démons amule&mldonkey

et teste tous les démons si nécessaire les redémarre et rédemarre le réseau & connection vpn

il teste si clé de reboot copié dans repertoire partagé(samba) si oui reboot (ça évite ssh :francais: )

il met tout dans un log

il efface les logs

et affiche l'espace disqo & liste fichiers dispo sur partage samba ^^

)

plus qu 'a piocher ce qui t'intéresse

moi perso il est dans /usr/mbin

un script lamba le lance au démarrage si nécessaire démande

j'ai modifié qqs infos par des xxx

si qqn à des commentaires pour améliorer le script parce que c pas du grand art :transpi:

pas de souci avec pour l'instant tourne 24/24 365/365

#!/bin/sh

interval="10"
log="/var/log/checkd.log"
tp="/var/log/checkd.tmp"
dmon1="/usr/bin/amuled"
dmon1stat="0"
dmon2="mlnet"
dmon3="samba"
dmon4="/usr/sbin/sshd"
via3="/media/hda4/TMP/DLD"
via1="/media/hda4/ML/DLD"
via2="/media/hda4/ML/DIR"

#Cle de reboot
nom="/media/hda4/DLD/key.reboot"
valeur="xxxxxxxxxxx"

#Info partoche
inf="/media/hda4/DLD/Info.rtf"

# Test fichier log
# Si fichier log inexistant, le creer
if [ -e $log ]
then
echo "Programme démarré : `date`" >> $log
else
echo "Fichier log $log inexistant"
>$log

if [ -e $log ]
then 
	echo "Fichier log crée : `date`" >> $log
else 
	echo "Impossible de creer un fichier log"
exit 1
fi
fi

sh /etc/init.d/mldonkey-server start >> $log

# test connection
while(true)
do

## ICI on programme la cle de reboot

if [ -e $nom ]
then
	if cat $nom | egrep $valeur > /dev/null
	then
	echo "Reboot par cle : `date`" >> $log
	rm $nom
	sleep 30
	init 6

	else
	rm $nom
	echo "Reboot par cle a echoue : `date`" >> $log
	fi
else
	sleep 1
fi


## Ensuite on efface les logs regulierement


#rm /var/log/*.0
#rm /var/log/*.gz
> /var/log/syslog
> /var/log/daemon.log
> /var/log/kern.log


## Ensuite prog info part

echo "Information sur espace disque disponible : `date`" > $inf
df -h /dev/hda3 >> $inf
echo "  " >> $inf
echo "Liste des fichiers" >> $inf
echo "  " >> $inf
du -h /media/hda4/DLD/* >> $inf


if route -n | egrep xx.xx.xx.xx > /dev/null
then


# si la connection a relakks est bien établie alors on vérifie les démons
# alors on liste la table des processus

#		echo "connection relakks active"

##Comme la connection a relakks est effective, on  va tester un a un les demons...
##Pour faire ça correctement on va creer un fichier tmp pour stoquer la table des processus
	ps ax > $tp
	sleep 5

#		#dmon1
#		if cat $tp | egrep $dmon1 > /dev/null
#		then
#			#echo "'$dmon1' actif"
#			sleep 1
#		else
#			echo "'$dmon1' inactif : `date`" >> $log
#			sh /etc/init.d/amule-daemon start >> $log
#		fi


	#dmon2
               if cat $tp | egrep $dmon2 > /dev/null
               then
                       #echo "'$dmon2' actif"
		sleep 1
               else
                       echo "'$dmon2' inactif : `date`" >> $log

		if [ -e /var/lib/mldonkey/mlnet.pid ]
		then
		rm /var/lib/mldonkey/mlnet.pid
		fi
		sh /etc/init.d/mldonkey-server start >> $log
               fi


	#dmon3
               if cat $tp | egrep smbd > /dev/null
               then
		sleep 1
                       #echo "'$dmon3' actif"
               else
                       echo "'$dmon3' inactif : `date`" >> $log
		sh /etc/init.d/samba restart >> $log
               fi

	#dmon3 bis
               if cat $tp | egrep nmbd > /dev/null
               then
		sleep 1
                       #echo "'$dmon3' bis actif"
               else
                       echo "'$dmon3' inactif : `date`" >> $log
                sh /etc/init.d/samba start >> $log
               fi


	#dmon4
               if cat $tp | egrep $dmon4 > /dev/null
               then
                       #echo "'$dmon4' actif"
		sleep 1                
	else
                       echo "'$dmon4' inactif : `date`" >> $log
                       sh /etc/init.d/ssh start >> $log
               	sleep 10
	fi

	sleep $interval
else
	echo "connection relakks inactive `date`" >> $log
## Ici La connection relakks est inactive, on va determiner si c'est la connection wifi,lan ou vpn qui est en cause

	if route -n | egrep 192.168.1.0 > /dev/null
	then
		echo "`date` vpn déconnecté, la connection au réseau local est ok" >> $log
		killall $dmon1
		killall $dmon2
		pon Relakks
		echo "`date` reconnection vpn via :  pon Relakks" >> $log
		sleep $interval
	else
		echo "`date` la connection au réseau local est off, tentative de reconnection" >> $log
		ifdown ra0 && ifup ra0
		sleep 10
		pon Relakks
		sleep $interval
	fi

	sleep $interval
fi

##Ensuite on deplace tout les fichiers telecharges dans le repertoire DLD

#d'abord les Mldonkeys

ls -A $via1 | grep . >/dev/null
if [ $? -eq 0 ]
then
mv /media/hda4/ML/DLD/* /media/hda4/DLD 
echo "Fichier deplace de /media/hda4/ML/DLD vers ../../DLD" >> $log
fi


ls -A $via2 | grep . >/dev/null
if [ $? -eq 0 ]
then
mv /media/hda4/ML/DIR/* /media/hda4/DLD 
echo "Dossier deplace de /media/hda4/ML/DIR ver ../../DLD" >> $log
fi

#maintenant amuled

#ls -A $via3 | grep . >/dev/null
#if [ $? -eq 0 ]
#then
#mv /media/hda4/TMP/DLD/* /media/hda4/DLD >> /dev/null
#echo "Fichier /media/hda4/TMP/DLD vers ../../DLD" >> $log
#fi

done

Lien vers le commentaire
Partager sur d’autres sites

merci beaucoup pour cet exemple!! ça va m'aider mais pour un autre truc... parce-que je viens de trouver d'où venait le problème.....

et c'est un truc débile...j'aurais du y pensé dès le début...

ma partition / était à 100% !!!!!

oui je sais... pas tapé.... :chinois:;):byebye:

j'ai fait un peu du ménage et maintenant c'est ok...

merci beaucoup à tout le monde en tout cas, et particulièrement à toi Marco07 pour cet exemple de script !! trop cool!!!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...