Version 3 (modified by Kanji_Man, 9 years ago) (diff)

Added umask code to correct permission issues when sharing of downloaded files. Older version of initscript took this approach. See also http://forum.deluge-torrent.org/viewtopic.php?t=39881

Ubuntu Upstart Job

Based on the previous Ubuntu scripts here.

Notes

  • This seems to work for me.
  • I can't remember if I manually created the deluge user first, you may need to.
  • Please update this guide if you can improve it.

Upstart Jobs

Put this in /etc/init/deluge.conf and set uid and gid to the user and group you wish to run deluge as:

start on (filesystem and networking) or runlevel [2345]
stop on runlevel [016]

env uid=deluge
env gid=deluge
env umask=000

exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluged -- -d

This should be placed in /etc/init/deluge-web.conf, remember to set uid and gid to your preference:

start on started deluge
stop on stopping deluge

env uid=deluge
env gid=deluge
env umask=000

exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluge-web

Migration

If you followed the old guide to make an init script, remove it:

sudo /etc/init.d/deluge-daemon stop
sudo rm /etc/init.d/deluge-daemon
sudo update-rc.d deluge-daemon remove

Start deluge

sudo start deluge

Web UI

  • To prevent the web-ui starting automatically after deluge, just remove the 'start on' line from deluge-web.conf. The web-ui can then be started (and stopped) manually with:
    sudo start deluge-web # sudo stop deluge-web
    

Logging

Create a structure for deluge to log to:

sudo mkdir -p /var/log/deluge

Give the user that deluge is running as (in this case deluge) write-access to the logs:

sudo chmod -R 755 /var/log/deluge
sudo chown -R deluge /var/log/deluge

Edit the init confs like so:

exec start-stop-daemon -S -c $uid:$gid -x /usr/bin/deluged -- -d -l /var/log/deluge/daemon.log -L warning
exec start-stop-daemon -S -c $uid:$gid -x /usr/bin/deluge-web -- -l /var/log/deluge/web.log -L warning
  • See Logging for possible log-levels.

Restart the daemon:

sudo restart deluge

Tell logrotate to rotate the logs by putting this in /etc/logrotate.d/deluge:

/var/log/deluge/*.log {
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                initctl restart deluge >/dev/null 2>&1 || true
                initctl restart deluge-web >/dev/null 2>&1 || true
        endscript
}