Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/01/2018, à 15:22

DonutMan75

[svn] lancement potable de svnserve

Bonjour à tous,
voilà j'aimerais créer un petit serveur svn tournant sur mon NAS Qpad TS-431+ (donc pas Ubuntu).
Je me suis rendu compte que le système restaurait automatiquement les scripts d'init,rendant toute daemonization propre du serveur délicate...

Le seul point d'accès pérenne que j'ai est un script autorun.sh dont je sais qu'il s'exécutera une seule fois au boot de la machine...

Je pensais mettre dans ce script quelque chose comme :

su svn -c "svnserve $SVNOPT" &

Qu'en dites-vous ?
Quelles sont les limitations par rapport à un daemon classique ?

J'en vois personnellement plusieurs :

1) Pas d'arrêt propre du serveur svn à l'arrêt du NAS (perturbant ?)
2) Pas de moyen d’interagir facilement avec le serveur svn. Il faudra recherche le PID manuellement (via ps par exemple) pour le stopper avant de le relancer manuellement
3) Pas de moyen simple de vérifier si on ne lance pas N versions successives du même serveur... peut s'avérer dangereux...
4) Autres choses ?

Ce n'est pas ultra propre, mais je pense que ça fonctionnera.. Qu'en dites-vous ?

Pour terminer, j'ai également un doute sur la position du '&' pour exécuter en arrière-plan le processus. Est-ce que la commande suivante ne serait pas mieux ?

su svn -c "svnserve $SVNOPT &"

Merci d'avance pour vos retours smile

Donut

PS : pour ceux qui se trouvent confronté au même problème, voici les liens http qui m'ont été utiles. Tout n'est pas forcément à jour, ni cohérent... mais enfin... on fait avec...
https://wiki.qnap.com/wiki/Running_Your … at_Startup
http://forum.qnapclub.fr/topic/828-auto … e-serveur/

Dernière modification par DonutMan75 (Le 10/01/2018, à 15:23)

Hors ligne

#2 Le 17/01/2018, à 14:24

demonipuch

Re : [svn] lancement potable de svnserve

Bonjour,

Voir le man de svnserve :

NAME
       svnserve - Server for the 'svn' repository access method

SYNOPSIS
       svnserve [options]

DESCRIPTION
       svnserve  allows  access  to  Subversion repositories using the svn network protocol.  It can both run as a standalone server process, or it can run out of inetd.  You must choose a mode of operation when you start svnserve.
       The following options are recognized:

       -d, --daemon
            Causes svnserve to run in daemon mode.  svnserve backgrounds itself and accepts and serves TCP/IP connections on the svn port (3690, by default).

       --listen-port=port
            Causes svnserve to listen on port when run in daemon mode.

       --listen-host=host
            Causes svnserve to listen on the interface specified by host, which may be either a hostname or an IP address.

       --foreground
            When used together with -d, this option causes svnserve to stay in the foreground.  This option is mainly useful for debugging.

       -i, --inetd
            Causes svnserve to use the stdin/stdout file descriptors, as is appropriate for a daemon running out of inetd.

       -h, --help
            Displays a usage summary and exits.

       --version
            Print svnserve's version and the repository filesystem back-end(s) a particular svnserve supports.

       -r root, --root=root
            Sets the virtual root for repositories served by svnserve.  The pathname in URLs provided by the client will be interpreted relative to this root, and will not be allowed to escape this root.

       -R --read-only
            Force all write operations through this svnserve instance to be forbidden, overriding all other access policy configuration.  Do not use this  option  to  set  general  repository  access  policy  -  that  is  what  the
            conf/svnserve.conf repository configuration file is for.  This option should be used only to restrict access via a certain method of invoking svnserve - for example, to allow write access via SSH, but not via a svnserve
            daemon, or to create a restricted SSH key which is only capable of read access.

       -t, --tunnel
            Causes svnserve to run in tunnel mode, which is just like the inetd mode of operation (serve one connection over stdin/stdout) except that the connection is considered to be pre-authenticated with the  username  of  the
            current uid.  This flag is selected by the client when running over a tunnel agent.

       --tunnel-user=username
            When combined with --tunnel, overrides the pre-authenticated username with the supplied username.  This is useful in combination with the ssh authorized_key file's "command" directive to allow a single system account to
            be used by multiple committers, each having a distinct ssh identity.

       -T, --threads
            When running in daemon mode, causes svnserve to spawn a thread instead of a process for each connection.  The svnserve process still backgrounds itself at startup time.

       --config-file=filename
            When specified, svnserve reads filename once at program startup and caches the svnserve configuration.  The password and authorization configurations referenced from filename will be loaded on each connection.  svnserve
            will not read any per-repository conf/svnserve.conf files when this option is used.  See the svnserve.conf(5) man page for details of the file format for this option.

       --pid-file=filename
            When specified, svnserve will write its process ID to filename.

       -X, --listen-once
            Causes svnserve to accept one connection on the svn port, serve it, and exit.  This option is mainly useful for debugging.

       Unless  the  --config-file  option was specified on the command line, once the client has selected a repository by transmitting its URL, svnserve reads a file named conf/svnserve.conf in the repository directory to determine
       repository-specific settings such as what authentication database to use and what authorization policies to apply.  See the svnserve.conf(5) man page for details of that file format.

Hors ligne

#3 Le 17/01/2018, à 23:19

DonutMan75

Re : [svn] lancement potable de svnserve

Bonsoir demonipuch,
merci pour ton retour smile

Mais en fait je m'interroge sur la différence entre les deux possibilités "It can both run as a standalone server process, or it can run out of inetd.".
Cela dépasse d'ailleurs le cadre du serveur svn et concerne tous les processus susceptibles d'être démonisé ^^

Bonne soirée à tous,

Donut

Hors ligne

#4 Le 18/01/2018, à 01:13

demonipuch

Re : [svn] lancement potable de svnserve

Vous pouvez lancer le serveur ainsi:

svnserve -d

Hors ligne