[résolu]erreur script de démarrage

Salut,
voilà j’ai concocté un petit script de démarrage pour mon serveur ftp sur debian (j’ai juste adapté les chemins), il est basé sur red-hat et il fonctionne mais seulement j’ai une erreur à la ligne 12 car je ne sais pas à quoi correspond le fichier /etc/init.d/functions car il n’existe pas dans ce répertoire, voici le script /etc/init.d/pure-ftpd :

[code]#!/bin/bash

Startup script for the pure-ftpd FTP Server $Revision: 1.3 $

chkconfig: 2345 85 15

description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd

processname: pure-ftpd

pidfile: /var/run/pure-ftpd.pid

config: /usr/local/pureftpd/pure-ftpd.conf

Source function library.

. /etc/init.d/functions

RETVAL=0

Path to the pure-ftp binaries.

prog=pure-config.pl
fullpath=/usr/local/pureftpd/sbin/$prog
pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho

start() {
echo -n $"Starting $prog: "
$fullpath /usr/local/pureftpd/pure-ftpd.conf --daemonize
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $"Stopping $prog: "
kill $(cat /var/run/pure-ftpd.pid)
RETVAL=$?
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
echo
}

See how we were called.

case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ] ; then
stop
# avoid race
sleep 3
start
fi
;;
status)
status $prog
RETVAL=$?
if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
$pureftpwho
fi
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
[/code]

qu’est ce que je dois mettre comme chemin à la place de /etc/init.d/functions ?

/usr/local/bin me parait curieux comme chemin…

Sinon, enlève la ligne où commente là, ce sont des définitions de fonctions que tu n’utilises pas…

[quote=“fran.b”]/usr/local/bin me parait curieux comme chemin…

Sinon, enlève la ligne où commente là, ce sont des définitions de fonctions que tu n’utilises pas…[/quote]

je ne vois pas où tu as vu /usr/local/bin ? je n’ai pas ce chemin sur le script.

J’ai commenté la ligne . /etc/init.d/functions et ça roule sauf la commande ‘status’, j’ai “commande not found” !
Merci

regardes dans les scripts init debian comment ils sont faits, et inspires t’en plutot que de prendre un script redhat.
/etc/init.d/functions est un “include” qui n’existe pas sous debian .
Sous debian, il y a aussi un include équivalent, qui fournit des fonctions “start-stop-daemon” par lesquelles il vaut mieux passer pour lancer un démon.
Refais ton piti script en t’inspirant des scripts debian.

fran.b: dexmon a compilé pure-ftp, et c’est donc sain d’avoir configuré l’install dans /usr/local, par contre dexmon, tu aurais dû faire en sorte que les binaires tombent dans /usr/local/bin (ou sbin), et la conf dans /usr/local/etc (voire pourquoi pas tout de même dans /etc). Tout avoir regroupé dans /usr/local/pureftpd n’est pas tout à fait propre.

Bon voilà j’ai remodifié le script pour faire fonctionner le status du serveur:

[code]#!/bin/sh

Startup script for the pure-ftpd FTP Server $Revision: 1.3 $

chkconfig: 2345 85 15

description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd

processname: pure-ftpd

pidfile: /var/run/pure-ftpd.pid

config: /usr/local/pureftpd/pure-ftpd.conf

Source function library.

. /etc/init.d/functions

RETVAL=0

Path to the pure-ftp binaries.

prog=pure-config.pl
stat=pure-ftpwho
fullpath=/usr/local/pureftpd/sbin/$prog
pureftpwho=/usr/local/pureftpd/sbin/$stat

start() {
echo -n $"Starting "
$fullpath /usr/local/pureftpd/pure-ftpd.conf
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $"Stopping "
kill $(killall -9 pure-ftpd)
RETVAL=$?
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
echo
}

Affiche le status en console et en page web avec css

status() {
echo -n $"FTP-Who "
RETVAL=$?
[ $RETVAL = 0 ] && pure-ftpwho -w >/usr/local/httpd/htdocs/status.html
echo
}

See how we were called.

case “$1” in
start)
start
;;
stop)
stop
;;
status)
status $stat
RETVAL=$?
if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
$pureftpwho
fi
;;
*)
echo $"Usage: $prog {start|stop|status}"
RETVAL=1
esac
exit $RETVAL[/code]

[quote=“mattotop”]regardes dans les scripts init debian comment ils sont faits, et inspires t’en plutot que de prendre un script redhat.
/etc/init.d/functions est un “include” qui n’existe pas sous debian .
Sous debian, il y a aussi un include équivalent, qui fournit des fonctions “start-stop-daemon” par lesquelles il vaut mieux passer pour lancer un démon.
Refais ton piti script en t’inspirant des scripts debian.

fran.b: dexmon a compilé pure-ftp, et c’est donc sain d’avoir configuré l’install dans /usr/local, par contre dexmon, tu aurais dû faire en sorte que les binaires tombent dans /usr/local/bin (ou sbin), et la conf dans /usr/local/etc (voire pourquoi pas tout de même dans /etc). Tout avoir regroupé dans /usr/local/pureftpd n’est pas tout à fait propre.[/quote]

Tu as tout a fait raison mais de cette façon je mi retrouve mieux sinon je deviens fou à chercher les fichiers de configuration à chaque fois que je fais des tests. lol

si je fais une compile par défaut il me les met ou tu dis mais j’ai fais un --prefix=/usr/local/pureftpd

Je vais regarder les scripts debian et voir si je trouve ce qu’il faut.

[quote=“mattotop”]
fran.b: dexmon a compilé pure-ftp, et c’est donc sain d’avoir configuré l’install dans /usr/local, par contre dexmon, tu aurais dû faire en sorte que les binaires tombent dans /usr/local/bin (ou sbin), et la conf dans /usr/local/etc (voire pourquoi pas tout de même dans /etc). Tout avoir regroupé dans /usr/local/pureftpd n’est pas tout à fait propre.[/quote]

Ok, mais dans ce cas, il devrait prendre le script de lancement du pure-ftp de debian et changer les binaires appelés, c’est plus simple mais bon…

Pour status, personnellement je virerais le case status qui ne sert pas à grand chose…

[quote=“fran.b”][quote=“mattotop”]
fran.b: dexmon a compilé pure-ftp, et c’est donc sain d’avoir configuré l’install dans /usr/local, par contre dexmon, tu aurais dû faire en sorte que les binaires tombent dans /usr/local/bin (ou sbin), et la conf dans /usr/local/etc (voire pourquoi pas tout de même dans /etc). Tout avoir regroupé dans /usr/local/pureftpd n’est pas tout à fait propre.[/quote]

Ok, mais dans ce cas, il devrait prendre le script de lancement du pure-ftp de debian et changer les binaires appelés, c’est plus simple mais bon…

Pour status, personnellement je virerais le case status qui ne sert pas à grand chose…[/quote]

le status est assez utile
ça affiche une page web avec les transfers du serveur en cours
regarde : etch.no-ip.org/status.html

ça donne[quote]Objet non trouvé!

L’URL requise n’a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d’informer l’auteur de cette page de cette erreur.

Si vous pensez qu’il s’agit d’une erreur du serveur, veuillez contacter le gestionnaire du site.
Error 404
etch.no-ip.org
Fri Dec 8 14:19:50 2006
Apache[/quote]
Par ailleurs, que ça te fournisse une belle page, vouiche, mais est ce que tu va vraiment faire appel à ton script init dans ton site web, ou est ce que tu ne va pas directement faire appel à pure-ftpwho -w ?

dsl pour le lien j’ai du le renommer.
je ne comprend pas ce que tu veux dire matt ?
Lorsque je tappe :

il m’envoi le status en console et sur la page web.
je pense que je fais appel a mon script init pour avoir la page web c’est le but
sinon avec pure-ftpwho je dois me tapper le lien en entier vers le répertoire web en console et c pas très pratique.
En fait c la commande status qui fait appel à pure-ftpwho…