Bonjour,
une petite question de débutant.
J'aimerai bien lancer le deamon svnserve (serveur subversion) sur debian 8.
Mais avec la contrainte suivante : je ne veux pas le lancer avec webDAV, mais en autonome.
Dans une version assez ancienne de debian, j'avais un petit script qui faisait un gros un svnserve -d -r <chemin_depots>
J'ai un petit peu entendu parlé de systemd, et maintenant que j'installe une version à jour, j'aimerai bien savoir comment faire pour lancer proprement le serveur (pour qu'on puisse le piloter avec les commandes systemd par exemple)
Actuellement, j'en suis ici :
j'ai fait le apt-get install subversion
puis mkdir /var/svn/depots
puis crée un depot :
mkdir /var/svn/depot/truc
svnadmin create --fs-type fsfs /var/svn/depots/truc
voilà, maintenant comment on fait pour lancer le demon en "service" ?
merci d'avance.
# Alors moi
Posté par M.Poil (site web personnel) . Évalué à 2. Dernière modification le 08 mars 2016 à 21:18.
Je ferais un truc comme ça (non testé)
Tu fou ça sous
/lib/systemd/system/svn-truc.service
Puis
systemctl daemon-reload
Is it a Bird? Is it a Plane?? No, it's Super Poil !!!
[^] # Re: Alors moi
Posté par Cyril Brulebois (site web personnel) . Évalué à 2.
Deux commentaires :
Requires=After=apache.service
: tu as unAfter=
en trop./lib/systemd/system/svn-truc.service
: pourquoi utiliser/lib
au lieu de/etc
?Debian Consultant @ DEBAMAX
[^] # Re: Alors moi
Posté par fabien . Évalué à 1.
Merci pour vos commentaires.
J'ai adapté un peu le fichier service (svn-srv.service)
- pour require, il ne connaissait pas "apache.service" alors j'ai mis "system-networkd.service"
- le système voulait un ExecReload, j'ai mis ExecReload=/usr/bin/killall -s SIGHUP svnserve
- pour simplifier les tests, j'ai désactivé les lignes User et Group (je teste donc avec le user root dans un 1er temps)
- j'ai augmenté le RestartSec à 60 sec.
- j' ais mis la commande ExecStart=/usr/bin/svnserve -d -r /var/svn/depots
Concernant la commande donnée(systemctl daemon-reload) ou bien que je tappe la commande "systemctl start svn-srv", il n'y a pas (plus) d'erreur retourné sur la console.
Neanmoins j'ai un petit soucis, j'ai l'impression que c'est pas bon, car quand je demande "systemctl status svn-srv" j'ai ceci :
Je vois donc "disabled"ou des trucs comme "code=exited"… et surtout je ne depasse jamais 60 secondes.. j'ai l'impression qu'il plante et relance toutes les 60 secondes.. pour plante t-il ?
Merci pour vos suggestions et vos aide sur systemd.
Salutations,
[^] # Re: Alors moi
Posté par fabien . Évalué à 1.
voici a quoi ressemble le fichier /etc/systemd/system/svn-srv.service avec les modifs
[Unit]
Description=svn-srv
Requires=systemd-networkd.service
[Service]
#WorkingDirectory= (au besoin?)
ExecStart=/usr/bin/svnserve -d -r /var/svn/depots
Restart=always
RestartSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=svn-srv
ExecReload=/usr/bin/killall -s SIGHUP svnserve
#User=svn # RunUser
#Group=svn # RunUserGroup
#Environment=MYVAR=FOO # SET ENV if needed
[Install]
WantedBy=multi-user.target
[^] # Re: Alors moi
Posté par wismerhill . Évalué à 3.
Attention, l'option -d de svnserve lui dit de se "daemonizer", c'est à dire de se détacher de lui-même de son processus parent pour tourner en arrière-plan.
Si tu veux fonctionner comme ça, il faut le dire à systemd avec l'option
Type=forking
et pour bien faire il faudrait ajouter l'option PIDFile pour que systemd sache quel est le processus à arrêter, et ajouter à la ligne de commande l'option --pid-file pour dire à svnserve où enregistrer son fichier PID.
Voir la documentation via man systemd.service
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.