Yangzebul Posté(e) le 15 septembre 2009 Partager Posté(e) le 15 septembre 2009 Bonjour, je galère un peu à comprendre ce qui cloche. Voila ce que j'ai fait : mkdir /home/user/werv su root aptitude install pure-ftpd vi /etc/init.d/pure-ftpd ~ remplacement d'une ligne ~ #STANDALONE_OR_INETD=inetd ~ STANDALONE_OR_INETD=standalone cd /etc/pure-ftpd/auth/ ln -s ../conf/PureDB 50pure pure-pw useradd user -u user -g user -d /home/user/wserv pure-pw mkdb Lorsque je lance le serveur manuellement cela fonctionne /usr/sbin/pure-ftpd -S 127.0.0.1,21 -c 30 -C 1 -l puredb:/etc/pureftpd.pdb -x -E -j -R Idem lorsque je lance le script : pure-ftpd start Par contre j'ai l'impression que le daemon se ferme mal... si je fais Ctrl+z pour retourner dans bash et queje fais /etc/init.d/pure-ftpd stop ~ Unable to start a standalone server: Address already in use De plus le daemon ne se lance pas au démarrage : update-rc.d pure-ftpd defaults ~ System startup links for /etc/init.d/pure-ftpd already exists. Vous l'aurez compris, je n'ai pas fait linux en première langue... Merci pour votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
nemesis93_75 Posté(e) le 15 septembre 2009 Partager Posté(e) le 15 septembre 2009 normalement un : Unable to start a standalone server: Address already in use Veut dire qu'un autre serveur est lancé mais ce qui est bizarre c'est que ça se passe lorsque tu fait un stop Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yangzebul Posté(e) le 15 septembre 2009 Auteur Partager Posté(e) le 15 septembre 2009 Oui, ça a aussi titillé mon attention, mais il me print bien ça... Lien vers le commentaire Partager sur d’autres sites More sharing options...
SnipX Posté(e) le 15 septembre 2009 Partager Posté(e) le 15 septembre 2009 Salut, je t'aurais conseillé d'installer vsftpd qui est pour moi plus léger, et reconnu pour une très bonne sécurité (va voir le site officiel et va voir qui l'utilise ). Sinon, je pense que tu n'as pas commenté la ligne de inetd.conf qui start le serveur ftp, d'ou le fait qu'il est déjà en train d'écouter. Faut que tu ailles dans /etc/inetd.conf et commentes la ligne correspondant à FTP (si tu utilises xinetd c'est dans xinetd.conf). Ensuite tu reloades inetd pour qu'il prenne en compte les changements : kill -HUP $(cat /var/run/inetd.pid) Ensuite tu peux restarter ton pure-ftpd et là ça devrait passer Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 15 septembre 2009 Partager Posté(e) le 15 septembre 2009 Le ctrl+z freeze la tâche, tu ne peux plus la tuer. Essaye un bg avant de la tuer. Ou tout simplement un ctrl+c. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yangzebul Posté(e) le 15 septembre 2009 Auteur Partager Posté(e) le 15 septembre 2009 Bon quelques avancements, mais le problème n'est toujours pas résolu. Pour cette histoire de start/stop, une partie des incohérences vient du fait que j'ai confondu le script de lancement avec l'executable lui même : La je lance l'executable via le script /etc/init.d/pure-ftpd start La je lance directement l'executable (usr/sbin) qui n'a pas de switch "stop" et qui bien sûr tourne déjà... pure-ftpd stop SnipX : bien essayé, mais je n'ai pas inetd d'installé (ou alors je l'ai manqué), j'ai le debian minimal "de base" avec toutes les options décochées. theocrite : huhum, merci pour l'astuce, par contre je n'ai pas trop compris le coup du "bg" je suis sensé avoir une commande de ce nom ? Pour en revenir au coeur du problème, mon serveur ne se lance pas (sauf en invoquant le binaire directement) car le script de lancement sort trop tôt. La variable $STANDALONE_OR_INETD a la valeur inetd, malgré ma modification... comme si il chargait une config secondaire qui écraserai la mienne. #! /bin/sh ### BEGIN INIT INFO # Provides: pure-ftpd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # # pure-ftpd starts and stops the pure-ftpd ftp daemon PATH=/sbin:/bin:/usr/sbin:/usr/bin NAME=pure-ftpd DESC="ftp server" : ${SSDAEMONLOGOPTS:="--quiet"} UPLOADDAEMON=/usr/sbin/pure-uploadscript UDNAME=pure-uploadscript UDDESC="ftp upload handler" WRAPPER=/usr/sbin/pure-ftpd-wrapper # try to figure with suffix this script is called, # $0 might be a symlink pointing to this script if [ -h $0 ]; then ME=`/bin/readlink $0` else ME=$0 fi SUFFIX=`basename $ME | sed -ne 's/^pure-ftpd-\(.*\)/\1/p'` if [ "$SUFFIX" ]; then DAEMON=/usr/sbin/pure-ftpd-$SUFFIX else DAEMON=/usr/sbin/pure-ftpd fi # export STANDALONE_OR_INETD=inetd export STANDALONE_OR_INETD=standalone export VIRTUALCHROOT= test -r /etc/default/pure-ftpd-common && . /etc/default/pure-ftpd-common if [ "$VIRTUALCHROOT" = "true" ]; then if [ "$SUFFIX" ]; then SUFFIX="$SUFFIX-virtualchroot" else SUFFIX="virtualchroot" fi fi test -x $DAEMON || exit 0 test -x $WRAPPER || exit 0 set -e start_uploadscript() { if [ "$UPLOADSCRIPT" -a "$STANDALONE_OR_INETD" != inetd ] && \ egrep -i '^[ ]*(yes|1|on)[ ]*' /etc/pure-ftpd/conf/CallUploadScript > /dev/null 2>&1 then UOPTS="" test "$UPLOADUID" && UOPTS="$UOPTS -u $UPLOADUID" test "$UPLOADGID" && UOPTS="$UOPTS -g $UPLOADGID" echo -n "$1 $UDDESC: " start-stop-daemon --start $SSDAEMONLOGOPTS --oknodo \ --exec $UPLOADDAEMON -- -r "$UPLOADSCRIPT" -B $UOPTS echo "$UDNAME." fi } case "$1" in start) echo -n "test $STANDALONE_OR_INETD" test "$STANDALONE_OR_INETD" = standalone || exit 0 echo -n "Starting $DESC: " start-stop-daemon --start $SSDAEMONLOGOPTS --pidfile /var/run/pure-ftpd/pure-ftpd.pid \ --exec $WRAPPER -- $SUFFIX start_uploadscript Starting ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop $SSDAEMONLOGOPTS --oknodo \ --pidfile /var/run/pure-ftpd/pure-ftpd.pid start-stop-daemon --stop $SSDAEMONLOGOPTS --oknodo --exec $UPLOADDAEMON echo "$NAME." ;; restart|force-reload) test "$STANDALONE_OR_INETD" = standalone || exit 0 echo -n "Restarting $DESC: " start-stop-daemon --stop $SSDAEMONLOGOPTS --oknodo \ --pidfile /var/run/pure-ftpd/pure-ftpd.pid start-stop-daemon --stop $SSDAEMONLOGOPTS --oknodo --exec $UPLOADDAEMON sleep 1 start-stop-daemon --start $SSDAEMONLOGOPTS --pidfile \ /var/run/pure-ftpd/pure-ftpd.pid --exec $WRAPPER -- $SUFFIX start_uploadscript Restarting ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 Le premier echo dans le case "start" print toujours "inetd", donc le script exit à la ligne suivante et mon serveur ne se lance pas... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yangzebul Posté(e) le 15 septembre 2009 Auteur Partager Posté(e) le 15 septembre 2009 Cela se précise echo -n "inb4 $STANDALONE_OR_INETD" export VIRTUALCHROOT= test -r /etc/default/pure-ftpd-common && . /etc/default/pure-ftpd-common echo -n "ina4 $STANDALONE_OR_INETD" Donc si je comprends bien cette ligne, retourne une valeur pour VIRTUALCHROOT, test l'existence du fichier, le concatène (opérateur .) au script courant. C'est ça ? En tout cas je l'ai édité et maintenant ça marche nickel. PS : j'attends le retour sur cette ligne et la commande mystère "bg" avant de mettre en résolu. Lien vers le commentaire Partager sur d’autres sites More sharing options...
SnipX Posté(e) le 16 septembre 2009 Partager Posté(e) le 16 septembre 2009 ". /etc/default/pure-ftpd-common" te permet juste de "loader" les infos du fichier. Cette commande est souvent utilisée quand tu modifies le ~/.bashrc et que tu veux que ton bash se mette à jour, Tu fais ". ~/.bashrc" Donc je suppose que dans "/etc/default/pure-ftpd-common" tu as la variable qui t'interesse :) Sinon concernant bg, c'est une commande Unix qui te permet de lancer ta commande en arrière-plan (background). Ensuite, pour la remettre au premier plan, tu tapes fg (foreground). Je te conseille d'aller voir sur le net cela est bien mieux expliqué mais tu as le principe :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 16 septembre 2009 Partager Posté(e) le 16 septembre 2009 Par défault, tu ne devrais jamais utiliser le binaire lui même, mais toujours le script de lancement qui est fait pour (sauf dans des cas spéciaux, pour débugger par exemple) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.