lancer une commande au niveau init 3 [RESOLU] - Codes et scripts - Linux et OS Alternatifs
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 ?
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...
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 : |
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...
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
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 ?
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
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é.
Marsh Posté le 18-09-2007 à 22:44:45
C'est ce que je craignais....
Je reviens donc plus tard.
merci :-)
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
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 ?
Marsh Posté le 18-09-2007 à 23:23:02
tu peux faire un ls -la /etc/rc2.d ?
Marsh Posté le 18-09-2007 à 23:26:23
v-debian01etc/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
Marsh Posté le 18-09-2007 à 23:26:47
ah ouai, normal, tu as mis l'option -n
Marsh Posté le 18-09-2007 à 23:27:11
Citation : OPTIONS |
Marsh Posté le 18-09-2007 à 23:27:57
la meme commande sans le -n devrait être nickel
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-debian01etc/init.d# ls -la ina*
-rwxr-x--x 1 root root 0 2007-09-18 23:18 inadyn-start
v-debian01etc/init.d#
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"...
Marsh Posté le 18-09-2007 à 23:30:37
Tu vois, ca n'a pas pris 5h
Marsh Posté le 18-09-2007 à 23:31:11
Il me refait la même ...
Ce n'est donc pas fini !
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
Marsh Posté le 18-09-2007 à 23:33:55
testé à l'instant:
[ root@loky /etc/init.d ] |
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.
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...
Marsh Posté le 18-09-2007 à 23:37:59
il les a créer au final les liens ou pas alors ?
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 ?
Marsh Posté le 18-09-2007 à 23:39:36
ReplyMarsh 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
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.
Marsh Posté le 18-09-2007 à 23:44:16
Sinon tu peux le faire à la main aussi le lien (ln -s...)
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.
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
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 ;-)
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:waitusr/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