Bonjour,
Le 18/09/2011 16:55, marc.terrier@??? a écrit :
> Bonjour à tous,
>
> J'ai un serveur Debian (Lenny) avec un certain nombre de services démarrés par xinetd, dont svnserve qui a fonctionné très bien pendant des mois, mais qui là ne veut plus démarrer, et je ne sais pas trop quoi faire pour y remédier, ni pour trouver la cause du problème. Je n'ai rien fait de particulier, récemment, sur cette machine, juste un apt-get update et un apt-get upgrade.
>
> find /var/run/ -name *.pid
> /var/run/xinetd.pid
> /var/run/rsyslogd.pid
> /var/run/gpm.pid
> /var/run/mdadm/monitor.pid
> /var/run/apache2.pid
> /var/run/acpid.pid
> /var/run/portmap.pid
> /var/run/exim4/exim.pid
> /var/run/mysqld/mysqld.pid
> /var/run/rpc.statd.pid
> /var/run/sm-notify.pid
> /var/run/vsftpd/vsftpd.pid
> /var/run/samba/smbd.pid
> /var/run/samba/nmbd.pid
> /var/run/crond.pid
> /var/run/ntpd.pid
> /var/run/sshd.pid
> /var/run/atd.pid
>
> xinetd est bien lancé, le fichier de configuration /etc/xinetd.d/svn est présent, et identique à ce qu'il était avant que le problème ne se manifeste :
>
> cat svn
> service svn
> {
> socket_type = stream
> protocol = tcp
> port = 3690
> wait = no
> user = svn
> group = svnusers
> disable = no
> server = /usr/bin/svnserve
> server_args = -i -r /srv/svn
> }
>
> Je ne trouve dans /var/log/messages.* rien qui se rapporte ni à svnserve, ni à xinetd.
>
> Auriez-vous une piste à me suggérer, SVP ?
>
> Merci d'avance.
Ce n'est pas super évident de debugger une config xinetd. Cependant, il
y a plusieurs astuces qui peuvent aider.
1) Sur une Debian, les logs de xinetd se retrouverons sur
/var/log/daemon.log (moins verbeux que le "messages")
2) Si le problème se situe au niveau de l'authentification de svnserve,
tu peux retrouver des logs dans /var/log/auth.log
3) Après le redémarrage de xinetd, vérifie que le port 3690 est bien ouvert:
netstat -taupn|grep 3690
En lançant la commande en temps que root, le paramètre "n" indique quel
est le nom du process qui écoute sur le port. Dans ton cas, cela doit
être xinetd.
4) "strace" peut aider à trouver des intormations. Pour cela, tu peux
utiliser:
strace -t -f -o /tmp/xinetd.log /etc/init.d/xinetd restart
ou moins verbeux ;
strace -t -f -o /tmp/xinetd.log -e open /etc/init.d/xinetd restart
Tu fais alors un un "tail -f /tmp/xinetd.log"
et tu lances une connexion sur ton "svnserve"
5) il y a quelques années, j'avais eu des gros problèmes entre sshd et
xinetd (j'en avais d'ailleurs parlé ici). Le problème était que pour
fonctionner, sshd avait besoin d'un répertoire /var/run/sshd/ , afin de
s'en servir comme répertoire de base. Or, /var/run/ est purgé lors du
reboot de la machine.
A noter qu'il n'y avait pas de message dans les logs, qui permettait de
déduire de la cause du problème. Mais une analyse des logs de "strace"
m'avait mis sur la voie.
J'avais résolu le problème facilement en rajoutant au /etc/rc.local :
[ ! -d /var/run/sshd/ ] && mkdir /var/run/sshd/
6) vérifie que l'utilisateur "svn" peut se logger ("user = svn" dans le
/etc/xinetd/svn). Si ce n'est pas le cas, il faut regarder comment est
configuré le compte "svn" (/etc/passwd):
su svn
echo $?
7) Dans le même esprit, essaye de lancer svn à la main, sans passer par
xinetd :
netstat -taupn|grep 3690
/etc/init.d/xinetd stop
netstat -taupn|grep 3690
su -c "/usr/bin/svnserve -i -r /srv/svn" svn
netstat -taupn|grep 3690
Cordialement,
Olivier
--
~~~~~~~ _____/\_____ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix / _ \/ _ \ Olivier Allard-Jacquin
/ / \ / \ \ Web: http://olivieraj.free.fr/
/___/ / \ \___\ Mail: olivieraj@???
~~~~ ///// ///\\\ \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!