我正在尝试在启动时运行 calibre-server 。这是服务内容的示例
[Unit]
Description=calibre Content server
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/calibre/calibre-server "/path-to-mounted-external-hdd-partition/Calibre Library"
[Install]
WantedBy=multi-user.target
当我检查服务状态时:sudo systemctl status calibre-server.service
我收到以下消息:There is no calibre library at: /path-to-mounted-external-hdd-partition/Calibre Library
然而,当我输入:sudo systemctl start calibre-server.service
它开始完美。
我的假设是分区和文件夹结构在服务最初运行时未安装/可用。所以我尝试用test.sh的内容替换ExecStartExecStart=/test.sh
#!/bin/bash
ls -la /path-to-mounted-external-hdd-partition/ 2> /out.txt >> /out.txt
存储在out.txt中的结果显示(为简洁起见,进行了简化):
.
..
运行服务时外部硬盘的内容似乎是空的。
这是为什么?我该如何解决?
PS我不知道这是否重要,但安装是通过 ubuntu/disks 应用程序完成的,而不是通过/etc/fstab 完成的
聚苯硫醚
systemctl list-units | grep '\.mount'
-.mount loaded active mounted Root Mount
...
media-XXX-Storage.mount loaded active mounted /media/XXX/Storage
其中/media/XXX/Storage正是我所描述的/path-to-mounted-external-hdd-partition