lancer une commande au niveau init 3 [RESOLU]

lancer une commande au niveau init 3 [RESOLU] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 18-09-2007 à 22:23:20    

Bonsoir,
 
C'est surement simple, mais certainement moins que moi !
Je veux simplement lancer une commande au démarrage du système, et pourquoi pas avoir un retour dans /var/log/monprg.
 
Je souhaite lancer inadyn dont le fichier conf est bien renseigné.
Pour le tester, je lance juste inadyn [enter] ou /usr/sbin/inadyn [enter] et il fonctionne au poil.
 
Sans avoir besoin de me loguer, j'aimerai qu'il s'execute au niveau runlevel 3.
 
J'édite mon /etc/inittab comme suit :
dynd:3:wait:/usr/sbin/inadyn
 
Mais rien ne se passe...  
(bien sûr, j'ai constaté que rien ne s'est passé puisque mon ip n'a pas été updatée chez dyndns.org).
 
Pour info, inadyn est un client du service de dyndns.com permettant de mettre à jour mes nom d'hôtes DNS avec mon IP publique dynamique.
 
Comment dois-je procéder le plus simplement, puis, pourquoi pas avoir un log ?
 
Merci


Message édité par krisofe le 19-09-2007 à 00:18:02
Reply

Marsh Posté le 18-09-2007 à 22:23:20   

Reply

Marsh Posté le 18-09-2007 à 22:27:15    

1. pour lancer un script en lors du passage en init 3 il faut que tu fasses un script et que tu le mettes dans /etc/rc3.d
(généralement on met les scripts dans /etc/init.d et on fait des liens symbolique dans les /etc/rc{1,2,3,4,5,6}.d). Le nom du lien/script dans /etc/rc... doit etre du format SXXnomduscrip où XX est une priorité cf les autres scripts.

 

2. Je ne connais pas ta distribution mais il est fort possible qu'un package soit dispo. Préfère le

 

3. es tu sûr que c'est en runlevel 3 que ton pc boot ?


Message édité par o'gure le 18-09-2007 à 22:28:45

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 22:30:38    

C'est etch (debian4).
Je n'avais pas jugé utile de le mettre.
Le pc boote en 2
j'ai mis à la fin de /etc/rc.local ma commande et je reboote....
Je vais voir.
Sinon, oui, i y a ce paquage pour ma debian, mais j'aimerai mieux l'avoir en ligne, pour m'éclairer un peu...

Reply

Marsh Posté le 18-09-2007 à 22:35:39    

krisofe a écrit :

Le pc boote en 2


Si le pc boot en 2 c'est dans /etc/rc2.d qu'il faut faire le script. rc.local... bof

krisofe a écrit :


Sinon, oui, i y a ce paquage pour ma debian, mais j'aimerai mieux l'avoir en ligne, pour m'éclairer un peu...


Pas compris cette phrase. A l'époque où ce n'était pas mon routeur qui faisait ce boulot, j'avais installer un client dyndns via un des packages debian. et ca marchait niquel...


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 22:37:52    

Cf la doc de référence de debian, la première source d'information, normalement...
http://www.debian.org/doc/manuals/ [...] -runlevels


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 22:40:42    

Je m'explique mieux :
C'est vrai que tous les routeurs le font (grand public) mais dans les
trois que j'ai eu (livebox, trendnet,netgeat) un seul hôte pouvait être mis à jour.
 
Pour le package client, qu'est-ce que tu utilisais ?

Reply

Marsh Posté le 18-09-2007 à 22:43:10    

ok, ok, je vais mieux lire...
En fait je ne voulais pas me prendre la tête pour l'instant avec les SX et KX dans les rc...
Je reviendrai un peu plus tard.
Merci


Message édité par krisofe le 18-09-2007 à 22:43:39
Reply

Marsh Posté le 18-09-2007 à 22:43:36    

hmmm... de mémoire ddclient. J'ai du également utiliser un peu ez-ipupdate mais pas réellement. Sinon oui, je comprend le probleme. Généralement les routeurs n'update qu'un seul hote.
 
Si tu tiens à faire toi meme ton script, suis la manière debian (script dans /etc/init.d + lien symbolique avec priorité.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 22:44:45    

C'est ce que je craignais....  
Je reviens donc plus tard.
merci :-)

Reply

Marsh Posté le 18-09-2007 à 22:45:27    

Y a pas vraiment à se prendre la tête. Ou alors 5 minutes pour comprendre que S c'est Start, K c'est kill/stop et que le chiffre c'est une priorité. Soit tu fais a la main, soit tu utilises update-rc.d, lecture du manpage et hop [:spamafote]


Message édité par o'gure le 18-09-2007 à 22:46:07

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 22:45:27   

Reply

Marsh Posté le 18-09-2007 à 22:47:02    

t'as raison, 5' pour toi et 5heure pour moi... zyvais

Reply

Marsh Posté le 18-09-2007 à 23:20:51    

hum...
Je crois que j'ai compris.
J'ai fait le script dans /etc/init.d.
Au lieu de tout me taper dans les rcX, j'ai donc utilisé
update-rc.d
 
J'ai tapé :
update-rc.d -n inadyn-start defaults [Enter]
 
 Adding system startup for /etc/init.d/inadyn-start ...
   /etc/rc0.d/K20inadyn-start -> ../init.d/inadyn-start
   /etc/rc1.d/K20inadyn-start -> ../init.d/inadyn-start
   /etc/rc6.d/K20inadyn-start -> ../init.d/inadyn-start
   /etc/rc2.d/S20inadyn-start -> ../init.d/inadyn-start
   /etc/rc3.d/S20inadyn-start -> ../init.d/inadyn-start
   /etc/rc4.d/S20inadyn-start -> ../init.d/inadyn-start
   /etc/rc5.d/S20inadyn-start -> ../init.d/inadyn-start
 
Le pb est que je ne vois pas ces liens symboliques dans les /etc/rcX.d ?

Reply

Marsh Posté le 18-09-2007 à 23:23:02    

tu peux faire un ls -la /etc/rc2.d ?


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:26:23    

v-debian01:/etc/rc2.d# ls -la
total 11
drwxr-xr-x   2 root root 1024 2007-09-04 18:37 .
drwxr-xr-x 107 root root 8192 2007-09-18 22:38 ..
-rw-r--r--   1 root root  149 2007-09-04 17:56 alire-gdm
-rw-r--r--   1 root root  556 2007-01-30 23:27 README
lrwxrwxrwx   1 root root   18 2007-08-22 23:29 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx   1 root root   15 2007-08-22 23:29 S11klogd -> ../init.d/klogd
lrwxrwxrwx   1 root root   17 2007-08-23 14:45 S18portmap -> ../init.d/portmap
lrwxrwxrwx   1 root root   15 2007-08-23 15:48 S19hplip -> ../init.d/hplip
lrwxrwxrwx   1 root root   15 2007-08-22 23:31 S20acpid -> ../init.d/acpid
lrwxrwxrwx   1 root root   20 2007-08-23 14:47 S20bittorrent -> ../init.d/bittor                                                                             rent
lrwxrwxrwx   1 root root   22 2007-08-23 14:48 S20cpufrequtils -> ../init.d/cpuf                                                                             requtils
lrwxrwxrwx   1 root root   16 2007-08-23 15:42 S20cupsys -> ../init.d/cupsys
lrwxrwxrwx   1 root root   14 2007-08-23 14:47 S20dbus -> ../init.d/dbus
lrwxrwxrwx   1 root root   15 2007-08-23 14:44 S20exim4 -> ../init.d/exim4
lrwxrwxrwx   1 root root   22 2007-08-23 14:49 S20hotkey-setup -> ../init.d/hotk                                                                             ey-setup
lrwxrwxrwx   1 root root   17 2007-08-22 23:26 S20makedev -> ../init.d/makedev
lrwxrwxrwx   1 root root   23 2007-08-22 23:29 S20openbsd-inetd -> ../init.d/ope                                                                             nbsd-inetd
lrwxrwxrwx   1 root root   13 2007-09-04 18:37 S20ssh -> ../init.d/ssh
lrwxrwxrwx   1 root root   16 2007-09-03 18:02 S20vsftpd -> ../init.d/vsftpd
lrwxrwxrwx   1 root root   20 2007-08-23 14:45 S21nfs-common -> ../init.d/nfs-co                                                                             mmon
lrwxrwxrwx   1 root root   17 2007-08-23 14:47 S89anacron -> ../init.d/anacron
lrwxrwxrwx   1 root root   13 2007-08-23 14:45 S89atd -> ../init.d/atd
lrwxrwxrwx   1 root root   14 2007-08-22 23:28 S89cron -> ../init.d/cron
lrwxrwxrwx   1 root root   18 2007-08-22 23:27 S99rc.local -> ../init.d/rc.local
lrwxrwxrwx   1 root root   19 2007-08-22 23:27 S99rmnologin -> ../init.d/rmnolog                                                                             in
lrwxrwxrwx   1 root root   23 2007-08-22 23:27 S99stop-bootlogd -> ../init.d/sto                                                                             p-bootlogd
lrwxrwxrwx   1 root root   18 2007-09-03 17:57 S99webmin -> /etc/init.d/webmin

Reply

Marsh Posté le 18-09-2007 à 23:26:47    

ah ouai, normal, tu as mis l'option -n [:neriki]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:27:11    

Citation :

OPTIONS
       -n     Ne fait rien, montre seulement ce qui pourrait etre fait.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:27:57    

la meme commande sans le -n devrait être nickel [:cupra]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:28:31    

j'avais essayé pour te dire ça.
J'ai relu la doc et pourtant la commande à l'air bonne avec "defaults".
 
v-debian01:/etc/init.d# ls -la ina*
-rwxr-x--x 1 root root 0 2007-09-18 23:18 inadyn-start
v-debian01:/etc/init.d#

Reply

Marsh Posté le 18-09-2007 à 23:29:10    

je croyais avoir lu -n comme "name" ?
Tu parles d'une buse...
Je refais sans le "n"...

Reply

Marsh Posté le 18-09-2007 à 23:30:37    

Tu vois, ca n'a pas pris 5h [:neriki]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:31:11    

Il me refait la même ...
Ce n'est donc pas fini !


Message édité par krisofe le 18-09-2007 à 23:31:31
Reply

Marsh Posté le 18-09-2007 à 23:32:30    

oui mais là il a dû créer les liens symboliques. Sinon rajoutes quelques chose dans ton script et "chmod 700 & chown root.root" le


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:33:55    

testé à l'instant:

[ root@loky /etc/init.d ]
# touch test.sh
[ root@loky /etc/init.d ]
# chmod 700 test.sh
[ root@loky /etc/init.d ]
# update-rc.d test.sh defaults
 Adding system startup for /etc/init.d/test.sh ...
   /etc/rc0.d/K20test.sh -> ../init.d/test.sh
   /etc/rc1.d/K20test.sh -> ../init.d/test.sh
   /etc/rc6.d/K20test.sh -> ../init.d/test.sh
   /etc/rc2.d/S20test.sh -> ../init.d/test.sh
   /etc/rc3.d/S20test.sh -> ../init.d/test.sh
   /etc/rc4.d/S20test.sh -> ../init.d/test.sh
   /etc/rc5.d/S20test.sh -> ../init.d/test.sh
[ root@loky /etc/init.d ]
# ls -l /etc/rc2.d/S20test.sh
lrwxrwxrwx 1 root root 17 2007-09-18 23:37 /etc/rc2.d/S20test.sh -> ../init.d/test.sh*
[ root@loky /etc/init.d ]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:35:55    

Pour le contenu du script, inspires toi des autres scripts. Lorsqu'il est appelé avec S20... (donc au démarrage) il est appelé avec l'argument start.
si il est appelé avec K20... (donc quand tu rebootes ou tu l'éteins) il est appelé avec l'argument stop.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:37:10    

Bin oui, c'est dingue ça alors !!
(Merci de ton soutien en tous cas, 'veux pas aller me coucher tant que ce n'est pas concret mon affaire...

Reply

Marsh Posté le 18-09-2007 à 23:37:59    

il les a créer au final les liens ou pas alors ?


Message édité par o'gure le 18-09-2007 à 23:38:17

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:38:47    

Oui, j'ai même fait /etc/init.d/montruc stop et restart.. Sans pb
N'y aurait-il pas un pb dû au fait qu'il ne "rende pas la main" mon prg ?

Reply

Marsh Posté le 18-09-2007 à 23:39:36    

Non, comme je t'ai dit, il m'a refait la même, avec ou sans -n...

Reply

Marsh Posté le 18-09-2007 à 23:41:42    

Je connais pas mais c'est possible qu'il reste boucle afin de détecter un changement d'adresse pour mettre a jour aussitot.
 - Vérifie les options pour fois si tu peux le mettre en daemon.
 - Sinon utilises le & afin de le mettre en  background.
 - Ou encore mieux, regardes dans les autres scripts et utilises les start-stop-daemon pour des "daemonifier", récupérer le pid...
 
Lis le manpage pour voir si tu peux rajouter des logs aussi tiens [:god]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:42:39    

krisofe a écrit :

Non, comme je t'ai dit, il m'a refait la même, avec ou sans -n...


Tu es bien root quand tu fais ca ?
mets le chmod 700 et change les droits pour le faire appartenir à root.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:44:16    

Sinon tu peux le faire à la main aussi le lien (ln -s...)


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-09-2007 à 23:45:19    

oui, il a pris un certain temps en fait !
Ou c'est moi qui n'en est plus pour longtemps...
Je teste...
 
En fait mon script n'a plus que son nom, il ne contient rien !! Je le réédite donc.


Message édité par krisofe le 18-09-2007 à 23:50:05
Reply

Marsh Posté le 19-09-2007 à 00:00:43    

Bon, ça y'est presque, sauf que...
 
Comme je l'avais imaginé, que ce soit au reboot (init 6) ou au démarrage, (à la phase 2), je me retrouve en frontal avec le programme qui ne s'arrête pas...
 
Peut-être un simple && suffirait ? ... vais voir
 
J'ai coupé la branche sur laquelle j'étais assis...
Je verrai demain, car là, impossible de me logguer à cause de ce prg...
@+
Merci


Message édité par krisofe le 19-09-2007 à 00:03:21
Reply

Marsh Posté le 19-09-2007 à 00:19:41    

Ok, pour l'instant dans le script de init.d, j'ai ajouté & .
Si la connection est nok, j'ai le retour sur ma console principale, sans
du coup etre gêné.
Merci du coup de main o'gure ;-)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed