glug: proftp e script di [start|stop|restart]

s.sartini s.sartini@linux.it
Gio 24 Giu 2004 14:11:09 CEST


mizar_cs@inwind.it wrote:

> Ciao a tutti,
> visto che i server ftp mi piacciono tanto ho provato proftpd.
> Scaricato, compilato, eseguito a mano = nessun problema.
> il problema è avviarlo al boot !!
> Tra i vari readme e documentazione, ho trovato uno script di 
> avvio per init.d ma sembra non vada per nulla.
> Se il server ftp è speno non lo avvia, se è avviato non lo ferma.
> accodo lo script:
> **********
> #!/bin/sh
> 
>   # ProFTPD files
>   #FTPD_BIN=/usr/local/sbin/proftpd
>   FTPD_BIN=/usr/sbin/proftpd
>   FTPD_CONF=/usr/local/etc/proftpd.conf
>   PIDFILE=/var/run/proftpd.pid
> 
>   # If PIDFILE exists, does it point to a proftpd process?
> 
>   if [  -f $PIDFILE ]; then  #*** 
>    pid=`cat $PIDFILE`
>   fi
> 
>   if [ ! -x $FTPD_BIN ]; then
>     echo "$0: $FTPD_BIN: cannot execute"
>     exit 1
>   fi
> 
>   case $1 in
> 
>     start)
>       if [ -n "$pid" ]; then
>         echo "$0: proftpd [PID $pid] already running"
>         exit
>       fi
> 
>       if [ -r $FTPD_CONF ]; then
>         echo "Starting proftpd..."
> 
>         $FTPD_BIN -c $FTPD_CONF
> 
>       else
>         echo "$0: cannot start proftpd -- $FTPD_CONF missing"
>       fi
>       ;;
> 
>     stop)
>       if [ -n "$pid" ]; then
>         echo "Stopping proftpd..."
>         kill -TERM $pid
> 
> 
>       else
>         echo "$0: proftpd not running"
>         exit 1
>       fi
>       ;;
> 
>     restart)
>       if [ -n "$pid" ]; then
>         echo "Rehashing proftpd configuration"
>         kill -HUP $pid
> 
>       else
> 
>         echo "$0: proftpd not running"
>         exit 1
>       fi
>       ;;
> 
>     *)
>       echo "usage: $0 {start|stop|restart}"
>       exit 1
> 
>       ;;
> 
>   esac
> 
>   exit 0
> ****************
> la riga incriminata secondo me è quella dove compaiono
> i tre asterischi commentati: in pratica *dovrebbe* creare il file 
> proftpd.pid che serve poi nelle altre righe da controllo se il server
> è già su, ma non fa un tubazzo. Se aggiungo un ! all'interno dell'IF
> crea il file ma vuoto e quindi non ha comunque il pid.
> Dalla mia (poca) esperienza di sviluppo e da quello che succede
> direi che è fatto coi piedi.
> Agli esperti l'ardua sentenza.........
> Grazie in anticipo.
> Maurizio

Ciao,
uno strumento piu' che una soluzione: esegui lo script con
"sh -x nomescript" e così hai un tracing dell'esecuzione dello script. 
Molto probabilmente sarai in grado da solo di scoprire il baco, anche 
perchè è difficile che sia lo script errato, ma verosimilmente la 
posizione dei files copiati quando hai dato il "make install".

Sapendo che distro usi forse qualcosa si potrebbe speculare, così' a 
occhio hai dato il "./configure" senza nessuno switch particolare (come 
minimo un --prefix=/usr sotto slack ad esempio io lo darei) e quindi non 
"in stile" con la posizione dei vari files della tua distro.
Per me dovresti vedere dov'è l'eseguibile ("which proftpd") e sistemare 
questa riga:

#FTPD_BIN=/usr/local/sbin/proftpd
FTPD_BIN=/usr/sbin/proftpd

  Ma ripeto, così a naso è dura dirlo.

Stefano

PS: a seconda dell'uso che ne devi fare, puo' essere fondamentale 
sistemare i files nei posti giusti quando compili dai sorgenti, 
soprattutto per non avere doppioni e impazzire a modificare un file d 
configurazione in /etc/ quando in realtà compilando a mano il server lo 
script usato è in /usr/local/etc. Finchè lo usi per te fa nulla, ma è un 
po come la programmazione: se deve metterci mano qualcun'altro ci 
impazzisce ;)
s.


Maggiori informazioni sulla lista glug