所以我一直在尝试自动启动一项服务,但一无所获。我已经尝试在 Mint 19.3 和 20 以及 Ubuntu 18.04 上自动启动该服务lizardfs-chunkserver.service
,但自动启动该服务不起作用。
我自动启动服务的方式是使用以下命令:
systemctl enable lizardfs-chunkserver.service
最初我认为这是操作系统问题,但是当我尝试自动启动不同的服务时,
systemctl enable lizardfs-master.service
服务lizardfs-master
自动启动良好。
这让我相信我无法自动启动,lizardfs-chunkserver
因为与服务本身有关。
以下是我发现的一些内容,但我无法进一步了解。作为旁注,我可以手动lizardfs-chunkserver
开始systemctl start lizardfs-chunkserver
。
- 从
systemctl status lizardfs-chunkserver.service
我看到的错误:
● lizardfs-chunkserver.service - LizardFS chunkserver daemon
Loaded: loaded (/lib/systemd/system/lizardfs-chunkserver.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-10-16 22:34:39 PDT; 11h ago
Docs: man:mfschunkserver
Process: 856 ExecStart=/usr/sbin/mfschunkserver start (code=exited, status=2)
Oct 16 22:34:39 13in-dell systemd[1]: lizardfs-chunkserver.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
Oct 16 22:34:39 13in-dell mfschunkserver[863]: hdd space manager: folder /mnt/hd1/ will be scanned
Oct 16 22:34:39 13in-dell systemd[1]: lizardfs-chunkserver.service: Failed with result 'exit-code'.
Oct 16 22:34:39 13in-dell mfschunkserver[863]: hdd space manager: path to scan: /mnt/hd1/
Oct 16 22:34:39 13in-dell systemd[1]: Failed to start LizardFS chunkserver daemon.
Oct 16 22:34:39 13in-dell mfschunkserver[863]: hdd space manager: start background hdd scanning (searching for available chunks)
Oct 16 22:34:39 13in-dell mfschunkserver[863]: main server module: listen on *:9422
Oct 16 22:34:39 13in-dell mfschunkserver[863]: master connection module: connect failed: Network is unreachable
Oct 16 22:34:39 13in-dell mfschunkserver[863]: init: master connection module failed
Oct 16 22:34:39 13in-dell mfschunkserver[863]: closing *:9422
- 从
journalctl -xe | grep lizard
我得到的错误:
Oct 16 22:34:39 13in-dell systemd[1]: lizardfs-chunkserver.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
-- An ExecStart= process belonging to unit lizardfs-chunkserver.service has exited.
Oct 16 22:34:39 13in-dell systemd[1]: lizardfs-chunkserver.service: Failed with result 'exit-code'.
-- The unit lizardfs-chunkserver.service has entered the 'failed' state with result 'exit-code'.
- 我注意到必须
lizardfs-master
运行才能lizardfs-chunkserver
启动,因此一直以来我都确保它master
已启动并运行。我什至尝试修改该lizardfs-chunkserver.service
文件以延迟服务启动 10 秒,以防万一它与重新启动时无法看到网络有关。我已包含/lib/systemd/system/lizardfs-chunkserver.service
以下内容:
[Unit]
Description=LizardFS chunkserver daemon
Documentation=man:mfschunkserver
After=network.target
[Service]
Type=forking
TimeoutSec=10
ExecStart=/usr/sbin/mfschunkserver start
ExecStop=/usr/sbin/mfschunkserver stop
ExecReload=/usr/sbin/mfschunkserver reload
Restart=no
[Install]
WantedBy=multi-user.target
答案1
我有类似的问题。我通过将其放入 chunkserver systemd 配置的 [Service] 部分来解决这个问题:
ExecStartPre=/bin/sleep 5
这使得它在启动前等待 5 秒。