Problems getting deluge-web to run as a service on CentOS 7

General support for problems installing or using Deluge
Post Reply
harywilke
New User
New User
Posts: 3
Joined: Wed Jan 21, 2015 11:59 am

Problems getting deluge-web to run as a service on CentOS 7

Post by harywilke »

Fresh install of CentOS, Fresh install of Deluge.
I followed the systemd scripts page and made a new user, had to edit the adduser command to make it relevant to CentOS

Code: Select all

adduser --system  --comment "Deluge Service" --home-dir /var/lib/deluge deluge
As user deluge I started deluged and deluge-web. i poked a hole in the firewall on port 8112. I think at this point the web wasn't seeing the daemon so i copied the localhost value from the deluge users auth file into my root and other users auth files. So now I have a working deluged and deluge-web running as deluge user.

Time to get them running as a service.
Getting deluged worked just as written in the guide, but i'm struggling with getting deluge-web to work at all as a service.

my /etc/systemd/system/deluge-web.service:

Code: Select all

[Unit]
Description=Deluge Bittorrent Client Web Interface
After=network.target

[Service]
Type=simple

User=deluge
Group=deluge
UMask=027

ExecStart=/usr/bin/deluge-web -l /var/log/deluge/web.log -L debug

Restart=always

[Install]
WantedBy=multi-user.target
# systemctl start deluge-web
# systemctl status deluge-web

Code: Select all

deluge-web.service - Deluge Bittorrent Client Web Interface
   Loaded: loaded (/etc/systemd/system/deluge-web.service; disabled)
   Active: failed (Result: start-limit) since Wed 2015-01-21 14:26:18 EET; 2s ago
  Process: 11697 ExecStart=/usr/bin/deluge-web -l /var/log/deluge/web.log -L debug (code=exited, status=0/SUCCESS)
 Main PID: 11697 (code=exited, status=0/SUCCESS)

Jan 21 14:26:18 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 14:26:18 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 14:26:18 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 14:26:18 mybox.localdomain systemd[1]: deluge-web.service start request repeated too quickly, refusing to start.
Jan 21 14:26:18 mybox.localdomain systemd[1]: Failed to start Deluge Bittorrent Client Web Interface.
Jan 21 14:26:18 mybox.localdomain systemd[1]: Unit deluge-web.service entered failed state.
Something odd to note. If i capitalize the 'A' in Restart=Always as stated in the guide i get:

Code: Select all

deluge-web.service - Deluge Bittorrent Client Web Interface
   Loaded: loaded (/etc/systemd/system/deluge-web.service; disabled)
   Active: inactive (dead)

Jan 21 13:48:27 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 13:48:27 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 13:48:27 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 13:48:27 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 13:48:28 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 13:48:28 mybox.localdomain systemd[1]: Stopped Deluge Bittorrent Client Web Interface.
Jan 21 14:15:12 mybox.localdomain systemd[1]: [/etc/systemd/system/deluge-web.service:14] Failed to parse service restart specifier, ignoring: Always
Jan 21 14:15:12 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 14:15:12 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 14:15:18 mybox.localdomain systemd[1]: [/etc/systemd/system/deluge-web.service:14] Failed to parse service restart specifier, ignoring: Always
The following is the log i get from trying to run deluge-web as a service

Code: Select all

13:48:28.166 [INFO    ][deluge.common:952 ] Setting up translations from /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/i18n
13:48:28.167 [INFO    ][deluge.ui.ui:111 ] Deluge ui 2.0.0.dev379
13:48:28.167 [DEBUG   ][deluge.ui.ui:112 ] options: {'profile': False, 'group': None, 'loglevel': u'debug', 'quiet': False, 'ssl': False, 'donotdaemonize': False, 'base': None, 'user': None, 'interface': None, 'rotate_logs': False, 'logfile': u'
/var/log/deluge/web.log', 'config': None, 'port': None, 'pidfile': None}
13:48:28.167 [DEBUG   ][deluge.ui.ui:113 ] args: []
13:48:28.168 [INFO    ][deluge.ui.ui:114 ] Starting web ui..
If instead i manually run the following command as user deluge
/usr/bin/deluge-web -l /var/log/deluge/web.log -L debug
i get a whole lot more in my log file

Code: Select all

13:52:30.465 [INFO    ][deluge.common:952 ] Setting up translations from /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/i18n
13:52:30.466 [INFO    ][deluge.ui.ui:111 ] Deluge ui 2.0.0.dev379
13:52:30.466 [DEBUG   ][deluge.ui.ui:112 ] options: {'profile': False, 'group': None, 'loglevel': u'debug', 'quiet': False, 'ssl': False, 'donotdaemonize': False, 'base': None, 'user': None, 'interface': None, 'rotate_logs': False, 'logfile': u'
/var/log/deluge/web.log', 'config': None, 'port': None, 'pidfile': None}
13:52:30.466 [DEBUG   ][deluge.ui.ui:113 ] args: []
13:52:30.466 [INFO    ][deluge.ui.ui:114 ] Starting web ui..
13:52:30.526 [INFO    ][twisted     :453 ] using set_wakeup_fd
13:52:30.632 [DEBUG   ][deluge.configmanager       :89  ] Getting config 'web.conf'
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'sidebar_show_zero' to False of <type 'bool'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'show_session_speed' to False of <type 'bool'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'first_login' to True of <type 'bool'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'https' to False of <type 'bool'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'sessions' to {} of <type 'dict'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'enabled_plugins' to [] of <type 'list'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'pwd_sha1' to 2ce1a410bcdcc53064129b6d950f2e9fee4edc1e of <type 'str'>
13:52:30.633 [DEBUG   ][deluge.config              :175 ] Setting 'cert' to ssl/daemon.cert of <type 'str'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'pkey' to ssl/daemon.pkey of <type 'str'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'port' to 8112 of <type 'int'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'interface' to 0.0.0.0 of <type 'str'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'theme' to gray of <type 'str'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'session_timeout' to 3600 of <type 'int'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'show_sidebar' to True of <type 'bool'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'default_daemon' to  of <type 'str'>
13:52:30.634 [DEBUG   ][deluge.config              :175 ] Setting 'sidebar_multiple_filters' to True of <type 'bool'>
13:52:30.635 [DEBUG   ][deluge.config              :175 ] Setting 'pwd_salt' to c26ab3bbd8b137f99cd83c2c1c0963bcc1a35cad of <type 'str'>
13:52:30.635 [DEBUG   ][deluge.config              :175 ] Setting 'base' to / of <type 'str'>
13:52:30.635 [DEBUG   ][deluge.config              :426 ] Config /var/lib/deluge/.config/deluge/web.conf version: 1.1 loaded: {'port': 8112, 'enabled_plugins': [], 'pwd_sha1': u'3029c860049df2e2d493a79205d72061b840dd9e', 'theme': u'gray', 'show_
sidebar': True, 'sidebar_show_zero': False, 'pkey': u'ssl/daemon.pkey', 'https': False, 'sessions': {u'c6ad1dc6c372a201af65d350893572ee': {u'login': u'admin', u'expires': 1421843268.0, u'level': 10}}, 'base': u'/', 'interface': u'0.0.0.0', 'pwd_
salt': u'a279d20bd9ca4c972d0273ac0f0ae40c60a942c1', 'show_session_speed': False, 'first_login': False, 'cert': u'ssl/daemon.cert', 'session_timeout': 3600, 'default_daemon': u'', 'sidebar_multiple_filters': True}
13:52:30.636 [DEBUG   ][deluge.ui.web.server       :208 ] Adding directory `/usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/ui/web/css` with path ``
13:52:30.636 [DEBUG   ][deluge.ui.web.server       :208 ] Adding directory `/usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/ui/web/icons` with path ``
13:52:30.637 [DEBUG   ][deluge.ui.web.server       :208 ] Adding directory `/usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/ui/web/images` with path ``
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.add_host
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.add_torrents
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.connect
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.connected
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.deregister_event_listener
13:52:30.641 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.disconnect
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.download_torrent_from_url
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_config
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_events
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_host_status
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_hosts
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_magnet_info
13:52:30.642 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_plugin_info
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_plugin_resources
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_plugins
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_torrent_files
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_torrent_info
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.get_torrent_status
13:52:30.643 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.register_event_listener
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.remove_host
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.set_config
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.start_daemon
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.stop_daemon
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.update_ui
13:52:30.644 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: web.upload_plugin
13:52:30.644 [DEBUG   ][deluge.configmanager       :89  ] Getting config 'hostlist.conf.1.2'
13:52:30.645 [DEBUG   ][deluge.config              :175 ] Setting 'hosts' to [('b787fb648f9f325eeb514fe18ff4cd0d8e1dd708', '127.0.0.1', 58846, '', '')] of <type 'list'>
13:52:30.645 [WARNING ][deluge.config              :396 ] Unable to open config file /var/lib/deluge/.config/deluge/hostlist.conf.1.2: [Errno 2] No such file or directory: '/var/lib/deluge/.config/deluge/hostlist.conf.1.2'
13:52:30.645 [DEBUG   ][deluge.ui.coreconfig       :20  ] CoreConfig init..
13:52:30.645 [DEBUG   ][deluge.ui.sessionproxy     :32  ] SessionProxy init..
13:52:30.645 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: auth.change_password
13:52:30.645 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: auth.check_session
13:52:30.646 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: auth.delete_session
13:52:30.646 [DEBUG   ][deluge.ui.web.json_api     :293 ] Registering method: auth.login
13:52:30.646 [DEBUG   ][deluge.configmanager       :89  ] Getting config 'web.conf'
13:52:30.646 [DEBUG   ][deluge.pluginmanagerbase   :51  ] Plugin manager init..
13:52:30.646 [DEBUG   ][deluge.configmanager       :89  ] Getting config 'web.conf'
13:52:30.681 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: AutoAdd 1.05 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/AutoAdd-1.05-py2.7.egg
13:52:30.681 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Execute 1.2 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Execute-1.2-py2.7.egg
13:52:30.681 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Stats 0.3.2 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Stats-0.3.2-py2.7.egg
13:52:30.682 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Blocklist 1.3 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Blocklist-1.3-py2.7.egg
13:52:30.682 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Extractor 0.3 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Extractor-0.3-py2.7.egg
13:52:30.682 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Label 0.2 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Label-0.2-py2.7.egg
13:52:30.682 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Notifications 0.2 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Notifications-0.2-py2.7.egg
13:52:30.682 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Toggle 0.3 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Toggle-0.3-py2.7.egg
13:52:30.683 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: WebUi 0.1 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/WebUi-0.1-py2.7.egg
13:52:30.683 [DEBUG   ][deluge.pluginmanagerbase   :110 ] Found plugin: Scheduler 0.2 at /usr/lib/python2.7/site-packages/deluge-2.0.0.dev379-py2.7.egg/deluge/plugins/Scheduler-0.2-py2.7.egg
13:52:30.683 [INFO    ][deluge.ui.web.server       :623 ] Starting server in PID 11483.
13:52:30.694 [INFO    ][twisted                    :453 ] Site starting on 8112
13:52:30.694 [INFO    ][twisted                    :453 ] Starting factory <twisted.web.server.Site instance at 0x33b1b90>
13:52:30.694 [INFO    ][deluge.ui.web.server       :636 ] serving on 0.0.0.0:8112 view at http://0.0.0.0:8112
Not sure how to proceed.
Perhaps deluge-web is taking too long to startup for systemd's liking? there does seem to be a .06 second delay between the last line and the twisted line in the log.

any thoughts suggestions would be welcome

Deluge Version: 2.0.0.dev.379 from git
Libtorrent Version: rb_libtorrent-0.16.17-2.el7.x86_64 from epel package
OS: CentOS Linux release 7.0.1406 (Core) running kernel 3.10.0-123.13.2.el7.x86_64
harywilke
New User
New User
Posts: 3
Joined: Wed Jan 21, 2015 11:59 am

Re: Problems getting deluge-web to run as a service on CentO

Post by harywilke »

some more digging...
journalctl produces this:

Code: Select all

Jan 21 19:04:02 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:02 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 19:04:03 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 19:04:03 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 19:04:03 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 19:04:03 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 19:04:03 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 19:04:03 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 19:04:03 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 19:04:03 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:03 mybox.localdomain systemd[1]: Started Deluge Bittorrent Client Web Interface.
Jan 21 19:04:04 mybox.localdomain systemd[1]: deluge-web.service holdoff time over, scheduling restart.
Jan 21 19:04:04 mybox.localdomain systemd[1]: Stopping Deluge Bittorrent Client Web Interface...
Jan 21 19:04:04 mybox.localdomain systemd[1]: Starting Deluge Bittorrent Client Web Interface...
Jan 21 19:04:04 mybox.localdomain systemd[1]: deluge-web.service start request repeated too quickly, refusing to start.
Jan 21 19:04:04 mybox.localdomain systemd[1]: Failed to start Deluge Bittorrent Client Web Interface.
Jan 21 19:04:04 mybox.localdomain systemd[1]: Unit deluge-web.service entered failed state.
really confused now as it looks like it's running then 1 second later it schedules a restart?
harywilke
New User
New User
Posts: 3
Joined: Wed Jan 21, 2015 11:59 am

Re: Problems getting deluge-web to run as a service on CentOS 7

Post by harywilke »

so, i found myself in the same spot, googled and found my question from 4 years ago, here is the fix. for my future self.

Code: Select all

ExecStart=/usr/bin/deluge-web -l /var/log/deluge/web.log -L debug
should have a '-d' inserted to run as a daemon

Code: Select all

ExecStart=/usr/bin/deluge-web -d -l /var/log/deluge/web.log -L debug
i've now set deluge-web.service to start and stop based on the status of deluged.service

deluged.service

Code: Select all

[Unit]
Description= Deluge Bittorrent Client Daemon
After=network-online.target
Wants=deluge-web.service
Before=deluge-web.service
ConditionPathExists=/data/Videos

[Service]
type=simple
User=deluge
Group=deluge
UMask=007

#ExecStart=/usr/bin/deluged -d -l /var/log/deluge/daemon.log -L warning
ExecStart=/usr/bin/deluged -d
Restart=on-failure

# Time to wait before service is stopped forcefully.
TiemoutStopSec=300

[Install]
WantedBy=multi-user.target
deluge-web.service

Code: Select all

[Unit]
Description=Deluge Bittorrent Client Web Interface
After=network-online.target
BindsTo=deluged.service

[Service]
Type=simple

User=deluge
Group=deluge
UMask=027

#ExecStart=/usr/bin/deluge-web -d --logfile /var/log/deluge/web.log --loglevel debug --logrotate
ExecStart=/usr/bin/deluge-web -d

Restart=on-failure

[Install]
WantedBy=multi-user.target
Post Reply