Problema: lo sviluppatore web o il sistemista hanno configurato il server ftp ProFTPD sul web server linux, ma di tanto in tanto il servizio si ferma improvvisamente dovendo ricorrere ad un restart da terminale.
Nel mio caso specifico il problema si verificava con Ubuntu Server 14.04 LST, ma potrebbe avvenire anche su altre distribuzioni server diffuse come debian o centOS.
Analisi: analizzando i log (var/log/proftpd) si nota che quello in uso è vuoto e quello archiviato precedentemnte riporta al termina delle ultime ultime righe errori simili a questi:
ProFTPD killed (signal 15) ProFTPD 1.3.5rc3 standalone mode SHUTDOWN
Soluzione: questo ci fa capire che il problema si verifica quando cron esegue il comando logrotate. Ecco quindi un pratico workaround per risolvere il problema:
1. Collegatevi in SSH ed andate ad editare lo script di gestione del servizio in init.d (io uso nano, ma potete usare anche vi)
sudo nano /etc/init.d/proftpd
2. In diversi punti del file troverete righe che determina lo start e stop del servizio simile a queste:
start-stop-daemon --start --quiet --pidfile "$PIDFILE"
start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
3. La modifica consiste nell’aggiungere l’opzione –retry 1. Dovrebbe essere sufficiente eseguirla all’interno della funzione start(), ma consiglio di applicarla ad ogni occorrenza.
start-stop-daemon --start --retry 1 --quiet --pidfile "$PIDFILE"
start-stop-daemon --stop --signal $SIGNAL --retry 1 --quiet --pidfile "$PIDFILE"
4. Nel mio caso il blocco di codice interessato è stato il seguente:
start() { log_daemon_msg "Starting ftp server" "$NAME" start-stop-daemon --start --retry 1  --quiet --pidfile "$PIDFILE" --oknodo --exec $DAEMON -- -c $CONFIG_FILE $OPTIONS if [ $? != 0 ]; then log_end_msg 1 exit 1 else log_end_msg 0 fi }
Lascia un commento