Dropbox è un servizio di storage online molto diffuso, che offre 2GB di spazio cloud gratuito espandibile fino a 16GB se si invitano amici.

L’installazione in un ambiente grafico non desta problemi: esistono pacchetti facilmente installabili su tutte le distribuzioni Debian based e Fedora based ed esiste anche un pacchetto per Arch Linux.

Il problema sussiste quando si cerca di avviare il demone in ambienti senza DE, come può essere un server. Il sito non specifica cosa bisogna fare per avviare il demone all’avvio del computer, ma dice qual’è l’eseguibile che fa partire il servizio. Sulla base di queste informazioni si può costruire un init script che faccia tutto il lavoro.

ATTENZIONE: la seguente guida si applica per Debian e probabilmente per le sue derivate. In fondo al post ci sono degli spunti per fare la stessa cosa per altri rami di distribuzione.

Per prima cosa, come specifica la pagina di download del sito alla voce Install via Command Line, occorre scaricare i binari nella home ed eseguire per la prima volta il demone:

  1. 32bit: $ cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
  1. 64bit: $ cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
  2. $ ~/.dropbox-dist/dropboxd

L’applicazione chiederà di copiare un link e di incollarlo su un browser per collegare il computer all’account, eseguito ciò comincerà la sincronizzazione.

A questo punto il programma è pronto per essere trattato come demone. Di seguito è presentato il mio script che va salvato con nome dropboxd nella cartella /etc/init.d/:

#!/bin/sh
# Start/stop Dropbox daemon
#
### BEGIN INIT INFO
# Provides: dropboxd
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Dropbox daemon
# Description: Execute Dropbox daemon as normal user.
# Dropbox folder can be found on the user's home.
### END INIT INFO


NAME=dropboxd
USER=nome_utente
GROUP=nome_gruppo
DAEMON=/home/$USER/.dropbox-dist/$NAME
ARGS=""
PIDFILE=/var/run/$NAME


case "$1" in
start)
echo "Starting Dropbox daemon"
start-stop-daemon --start --verbose --pidfile $PIDFILE --user $USER --group $GROUP -b --make-pidfile --chuid $USER --exec $DAEMON $ARGS
;;
stop)
echo "Stopping Dropbox daemon"
start-stop-daemon --stop --pidfile $PIDFILE --verbose
;;
restart)
echo "Stopping Dropbox daemon"
start-stop-daemon --stop --pidfile $PIDFILE --verbose
echo "Starting Dropbox daemon"
start-stop-daemon --start --verbose --pidfile $PIDFILE --user $USER --group $GROUP -b --make-pidfile --chuid $USER --exec $DAEMON $ARGS
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 2
;;
esac


exit 0

Le parti in grassetto devono essere sostituite con i nomi dell’utente e del suo gruppo di appartenenza. Reso eseguibile lo script con # chmod +x /etc/init.d/dropboxd, manca solo da vincolarlo ai vari runlevel con il comando # updare-rc.d dropboxd defaults. Al prossimo riavvio il demone partirà automaticamente, ma sarà sempre possibile gestirlo con il comando service.

/dev/null

In ArchLinux la situazione è molto più semplice: non è richiesto uno script per l’avvio come demone, basta soltanto che il percorso dell’eseguibile sia contenuto nella variabile globale PATH. Fatto questo sarà possibile scrivere l’eseguibile dropboxd nell’array dei demoni del file /etc/rc.conf.

Per le distribuzioni basate su RedHat esistono script simili a quelli di Debian, posizionati sempre nella cartella /etc/init.d/, ma con sintassi diversa. Fate riferimento alle numerose guide che trovate sul web per comprendere come creare l’init script.