![Calibre 服务器无法在 Ubuntu 服务器 16.10 上使用 systemd 启动](https://linux22.com/image/1147763/Calibre%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E5%9C%A8%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%2016.10%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20systemd%20%E5%90%AF%E5%8A%A8.png)
我正在尝试让 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.pid
which 告诉 calibre 将 pid 文件写入/var/run
。很可能运行该进程的用户User=calibre
无权写入那里。我建议您删除它,--pidfile
因为您没有使用它。
如果您确实想使用它,请将路径更改为用户可写的目录calibre
并PIDFile=/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”。如果您需要有关如何执行此操作的更多信息,我可以进行扩展。
最后,由于尚未提及,请确保您使用的端口被允许通过防火墙并由路由器正确转发。