Calibre 服务器无法在 Ubuntu 服务器 16.10 上使用 systemd 启动

Calibre 服务器无法在 Ubuntu 服务器 16.10 上使用 systemd 启动

我正在尝试让 Calibre 服务器在启动时自动启动。我曾使用过教程。然后我使用了这个脚本:

[Unit]
Description=Calibre Service
After=network.target

[Service]
User=calibre
Group=calibre
ExecStart=/usr/bin/calibre-server \
        --daemonize \
        --max-cover=600x800 \
        --max-opds-items=30 \
        --max-opds-ungrouped-items=100 \
        --username=calibre \
        --port=9000 \
        --pidfile=/var/run/calibre-server.pid \
        --with-library=/jan/home/calibre-library/

[Install]
WantedBy=multi-user.target 

在 systemd 中创建自动启动。如果我手动启动:systemctl start calibre.service 它似乎可以执行。如果我给出命令:systemctl status calibre.service,我会得到以下结果:

● calibre.service - Calibre Service
   Loaded: loaded (/lib/systemd/system/calibre.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2017-05-25 21:55:51 CEST; 45s ago
  Process: 1887 ExecStart=/usr/bin/calibre-server --daemonize --max-cover=600x800 --max-opds-items=30 --max-opds-ungrouped-items=100 --username=calibre --port=
 Main PID: 1887 (code=exited, status=0/SUCCESS)

May 25 21:55:50 FileServer systemd[1]: Started Calibre Service.
May 25 21:55:50 FileServer calibre-server[1887]: No write acces to 

/home/calibre/.config/calibre 使用临时目录

但是当我在浏览器中查看时,没有看到 calibre 主页http://192.168.0.100:9000,这是我的主服务器。有人知道吗?

答案1

您正在使用--pidfile=/var/run/calibre-server.pidwhich 告诉 calibre 将 pid 文件写入/var/run。很可能运行该进程的用户User=calibre无权写入那里。我建议您删除它,--pidfile因为您没有使用它。

如果您确实想使用它,请将路径更改为用户可写的目录calibrePIDFile=/dir/with/pidfile/calibre-server.pid在您的ExecStart行前添加,并且如上所述添加Type=forking

答案2

我在 18.04 上成功运行了 Calibre 服务器,因此希望这些建议也适用于您的发行版。

我会将类型更改为“oneshot”并删除“--daemonize”标签,因为无论如何您都是从 systemd 运行它,所以它不需要在那里。如果您正在运行当前版本的 calibre,则需要删除“--with-library”标签,并将最后一行保留为“/path/to/calibre/library”。

此外,您指定了用户名但没有密码。不确定这是否会导致问题,但最好创建一个用户数据库,然后将选项“--enable-auth”传递给服务器命令以激活您的用户(请参阅calibre 用户手册) 以及“--userdb /path/to/users.sqlite”。如果您需要有关如何执行此操作的更多信息,我可以进行扩展。

最后,由于尚未提及,请确保您使用的端口被允许通过防火墙并由路由器正确转发。

相关内容