Aller au contenu

Besoin exemple script init.d pour script perso


Dark26

Messages recommandés

Donc voila, j'ai un programme de dns dynamique sur ma bécane linux,

www.dynubasic.com :mdr: , ça marche bien mais il y a un petit HIC :francais:

en gros ça scan toutes les minutes pour voir si mon ip a changé (normal) mais le problème c'est que si ça scan mon ip pendant la reconnection ( donc à chaque coup car ça met souvent plus d'une minute pour reconnecter :fumer: , alors la le programme part en couille et se kill tout seul :cnul:

j'ai fait mon piti script qui fait un ps -c et qu regarde si il tourne... enfin c'est bon..

donc je voudrais le mettre dans les scripts init.d pour que ça se lance automatique.

pour l'intant je le lance avec nohup...

si quelqu'un un un example simple d'un script ( avec start stop et restart et éventuellement status que je pourrais adapter facilement :mdr: )

:zzz:

Lien vers le commentaire
Partager sur d’autres sites

Euh ddclient il fait tout tout seul ... en mode daemon, écrit en perl, et il s'installe dans l'init.d comme un grand ...

Avant de partir dans le init.d (parfois assez casse-gueule), as-tu jeté un oeil du côté de la crontab ?

j'ai quelques scripts dans mon /etc/init.d (lance du client Folding, forçage du 100 Full sur une Realtek 8139 ...) mais je me suis pas foulé je me suis inspiré des autres scripts. Ou alors vraiment lamba :

frodon:~# cat /etc/init.d/mii.sh

#!/bin/sh

echo -n "Setting eth0 speed and duplex : "

/sbin/mii-tool -F 100baseTx-FD eth0

/sbin/mii-tool -A 100baseTx-FD eth0

echo "done"

Sur l'autre machine (en Gentoo), là je me suis tapé du beau script qui gère le start et le stop, en couleur et tout, mais comme elle éteinte pour l'instant je ne sais pas te dire ...

Lien vers le commentaire
Partager sur d’autres sites

Sinon bien entendu un exemple : celui de Boa (serveur HTTP léger) :

suffit de modifier les variables intiales.

#! /bin/sh

#

#               Written by Miquel van Smoorenburg <miquels@cistron.nl>.

#               Modified for Debian GNU/Linux

#               by Ian Murdock <imurdock@gnu.ai.mit.edu>.

#               Modified for boa by Bill Allombert <ballombe@debian.org>.



PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DAEMON=/usr/sbin/boa

NAME=boa

DESC="HTTP server"



test -x $DAEMON || exit 0



set -e



case "$1" in

 start)

       echo -n "Starting $DESC: $NAME"

       start-stop-daemon --start --quiet --exec $DAEMON

       echo "."

      ;;

 stop)

       echo -n "Stopping $DESC: $NAME"

       start-stop-daemon --stop --quiet --oknodo --exec $DAEMON

       echo "."

      ;;

 restart|force-reload)

       #

       #       If the daemon can reload its config files on the fly

       #       for example by sending it SIGHUP, do it here.

       #

       #       If the daemon responds to changes in its config file

       #       directly anyway, make this a do-nothing entry.

       #

       echo -n "Reloading $DESC configuration..."

       start-stop-daemon --stop --signal 1 --quiet --oknodo --exec $DAEMON

       echo "done."

      ;;

 *)

       N=/etc/init.d/$NAME

       # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2

       echo "Usage: $N {start|stop|restart|force-reload}" >&2

       exit 1

      ;;

esac



exit 0

Pour le status ... euh ça dépend de l'appli

Lien vers le commentaire
Partager sur d’autres sites

#!/bin/bash

#

#	/etc/rc.d/init.d/

#

#	

#	

#

# 



# Source function library.

. /etc/rc.d/init.d/functions







case "$1" in

   start)

echo -n "Starting  services: "



touch /var/lock/subsys/

;;

   stop)

echo -n "Shutting down  services: "



rm -f /var/lock/subsys/

;;

   status)



;;

   restart)



;;

   reload)



;;

   probe)



;;

   *)

echo "Usage:  {start|stop|status|reload|restart[|probe]"

exit 1

;;

voila un truc....

bon je vais pouvoir m'inspirer de tous ça et sortir un truc qui tue :-D

Lien vers le commentaire
Partager sur d’autres sites

#!/bin/sh

#

#	/etc/rc.d/init.d/

#

#	

#	

# Par dark26 pour le client dynubasic 

# 



# Source function library.

#. /etc/rc.d/init.d/functions







case "$1" in

   start)

echo -n "Starting Dynamique DNS with Dynubasic: "



nohup /root/dynubasic/dynu &

;;

   stop)

echo -n "Shutting down Dynamique DNS with Dynubasic : "

PID=`ps -e | grep dynu | cut -d ' ' -f1 | head -n1`

kill -9 ${PID}

PID=`ps -e | grep dynubasic | cut -d ' ' -f1 | head -n1`

kill -9 ${PID}

;;

   status)

echo -n "Voici les pid des processus"

PID=`ps -e | grep dynu | cut -d ' ' -f1 | head -n1`

echo ${PID}

PID=`ps -e | grep dynubasic | cut -d ' ' -f1 | head -n1`

echo ${PID}

;;

   restart)



;;

   reload)



;;

   probe)



;;

   *)

echo "Usage:  {start|stop|status|reload|restart[|probe]"

exit 1

;;

esac

et voila mon script dynu

#!/bin/sh

while true

do

ps -C dynubasic > /dev/null

if [ $? = 1 ]

then 

echo "Dynubasic ne tourne pas redemarrage"

/root/dynubasic/dynubasic < /root/dynubasic/basic.cfg

fi

sleep 60

done

bon ça a l'air de fonctionner ( :-D )

mais j'ai un problème avec nohup et le & dans le init.d ça me parait bizarre....

y en a til vraiment besoin si c'est au démarrage ???

Lien vers le commentaire
Partager sur d’autres sites

toute petit précision "cosmétique" le echo "-n" fait qu'il n'y a pas de retour chariot.

En général c'est pas mal de faire :

echo -n "starting machin: "

< ton script >

echo "done"

comme ça :

* on a un retour chariot ça évite que le script suivant se mette à la meme ligne

* on a une idée d'où vient le pb si un message d'erreur d'affiche avant le done

Autre application tu pourrais faire un echo -n "$(PID) " à la place de ton echo $(PID) dans le status, ça mettrait les deux PID sur la même ligne :censored:.

T'as pas besoin de faire un nohup dans un script init.d, un & suffira (et je ne suis même pas sur qu'il soit nécessaire)

My 0.02 runlevel contribution

Lien vers le commentaire
Partager sur d’autres sites

Que le system.map (fichier d'infos de debug généré lors de la compilation du noyau) ne correspond pas au noyau booté.

Solution 1 : copier le dernier system.map (find /usr/src/linux | grep system.map) dans ton /boot

Solution 2 : virer le système .map, à moins que tu souhaite débugger ton noyau à la mimine...

My 0.02 k contribution

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...