OVH Cloud OVH Cloud

lancement script a l'extinction

26 réponses
Avatar
Christophe PEREZ
Bonjour,

Sous mdk 9.1, j'ai fait un script qui me fait la synchronisation de
certains répertoires entre mon portable et mon serveur.
Je veux que ce script se lance au démarrage et à l'extinction du
portable.
Dans ce script (synchrod) placé dans /etc/init.d , j'ai donc :
# chkconfig: 2345 98 01

et :
========== 8< =========================
case "$1" in
'start')
echo "Fonction (start)"
fct_synchro &
;;
'stop')
echo "Fonction (stop)"
fct_synchro
echo "fin (stop)"
;;
esac
exit 0
========== 8< =========================

En effet, je veux que la synchro au démarrage tourne en tâche de fond
non bloquante (d'où le &), mais que l'extinction attente que la synchro
soit faite.

J'ai fait un chkconfig --add synchrod

Et j'ai bien :
$ ls /etc/rc?.d/*synchrod
/etc/rc0.d/K01synchrod@ /etc/rc3.d/S98synchrod@ /etc/rc6.d/K01synchrod@
/etc/rc1.d/K01synchrod@ /etc/rc4.d/S98synchrod@ /etc/rc7.d/S98synchrod@
/etc/rc2.d/S98synchrod@ /etc/rc5.d/S98synchrod@

Pourtant, le script n'est jamais lancé à l'extinction, bien qu'il le
soit parfaitement au démarrage (aucun doute sur la fonction
fct_synchro() ).
Les fonctions "echo" sont redigirées vers un log par un exec en début
de script et la "fonction (stop)" n'y est jamais inscrite.
L'extinction étant testée par un "reboot" ou "halt" en ligne de commande.

Je ne parviens pas à trouver ce qui cloche.

Merci d'avance.

--
Christophe PEREZ
Écrivez moi sans _faute !

6 réponses

1 2 3
Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

- la ligne :
gprintf "Starting %s service: " "$service" fct_synchro &


Il n'y avait pas cette ligne dans mon script posté.

est devenue :
gprintf "Starting %s service: " "$service"
fct_synchro &


Mais bien ces deux lignes. :)

--
TiChou

Avatar
Bernard Déléchamp
Dans le message <news:c5jvrl$32b$,
*Bernard Déléchamp* tapota sur f.c.o.l.configuration :


Pourquoi ne pas, tout simplement, ajouter l'appel à ton script dans
/etc/rc.sysinit ou /etc/rc.local pour le démarrage et dans
/etc/init.d/halt pour l'extinction ?



Parce que, mis à part le script /etc/rc.local, ces scripts ne devraient
jamais être modifiés, qu'ils ne sont pas prévus à cet usage et qu'en plus


Ok, mais dans la mesure ou chkconfig ne donne pas le résultat escompté...

ils ne permettent pas de lancer son script au meilleur moment pour ne pas
dire au bon moment.


Il me semblait bien que ça existait, mais ne trouvais plus la référence
dans mes doc's. Il suffirait de créer et de rendre exécutable un
script /sbin/halt.local qui est appelé par halt s'il existe. Il ne reste
plus qu'à pinailler sur le bon moment pour l'exécution ;-D

Cordialement.

--
Ta mère est tellement moche que sur sa liste de mariage, elle a
demandé un mari.


Avatar
TiChou
Dans le message <news:c5lbtl$lul$,
*Bernard Déléchamp* tapota sur f.c.o.l.configuration :

ils ne permettent pas de lancer son script au meilleur moment pour ne pas
dire au bon moment.


Il me semblait bien que ça existait, mais ne trouvais plus la référence
dans mes doc's. Il suffirait de créer et de rendre exécutable un
script /sbin/halt.local qui est appelé par halt s'il existe. Il ne reste
plus qu'à pinailler sur le bon moment pour l'exécution ;-D


Justement, /sbin/halt.local est le tout dernier script lancé par le
processus d'arrêt ou de reboot, c'est-à-dire juste avant l'arrêt complet ou
le reboot de la machine.
Or à ce moment là, plus « aucun » process ne tourne, toutes les partitions
ont été démontées sauf la partition racine qui a été remontée donc difficile
à ce moment là de vouloir synchroniser des données entre deux machines.

--
TiChou


Avatar
Christophe PEREZ
Le Thu, 15 Apr 2004 02:35:31 +0200, TiChou a écrit:

Il n'y avait pas cette ligne dans mon script posté.


Effectivement, je viens de vérifier. Désolé d'avoir laissé croire...
C'est donc le copier/coller.
bizarre quand même qu'il m'ait concatené 2 lignes...

Et pour le service=${service#[SK]??}, tu en penses quoi ?

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

Et pour le service=${service#[SK]??}, tu en penses quoi ?


Que j'ai écrit le script à la volée et qu'il n'a pas été testé. :-)

Générallement je ne fais pas exactement ainsi pour mes scripts init.
Ici, le script étant appelé par son lien symbolique /etc/rc0.d/K01synchrod
et non pas directement par le chemin /etc/init.d/synchrod, le nom de base
n'est pas 'synchrod' mais bien K01synchrod.
Le plus simple était de définir directement la variable 'service' avec la
valeur 'synchrod' mais dans mon squelette j'ai voulu être plus universel.
:-)

--
TiChou

Avatar
Christophe PEREZ
Le Fri, 16 Apr 2004 02:02:15 +0200, TiChou a écrit:

Que j'ai écrit le script à la volée et qu'il n'a pas été testé. :-)


;-)

Générallement je ne fais pas exactement ainsi pour mes scripts init.
Ici, le script étant appelé par son lien symbolique /etc/rc0.d/K01synchrod
et non pas directement par le chemin /etc/init.d/synchrod, le nom de base
n'est pas 'synchrod' mais bien K01synchrod.


Tout à fait, sauf justement si on fait un "service synchrod start" ;-)
C'est ce qui m'a trompé au départ...

Le plus simple était de définir directement la variable 'service' avec la
valeur 'synchrod' mais dans mon squelette j'ai voulu être plus universel.


Oui, bon, ok, donc ce que j'ai fait n'est pas non plus idiot alors ;-)
Merci.

--
Christophe PEREZ
Écrivez moi sans _faute !

1 2 3