systemd 服务不会在启动时启动

systemd 服务不会在启动时启动

我正在创建一个 systemd 服务来自动启动 docker 容器。它在当前会话期间完美运行systemctl start,但无法在启动时自动启动(我有它enabled)。

服务单位档案:

[Unit]
Description=TiddlyWiki Container
After=docker.service
Requires=docker.service

[Service]
Restart=always
RestartSec=5
TimeoutStartSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n
Environment="TW_PORT=8080"
Environment="TW_DOCKERVOLUME=%n"
Environment="TW_DOCKERUID=0"
Environment="TW_DOCKERGID=0"
EnvironmentFile=/etc/tiddlywiki/%n.conf
ExecStartPre=-/usr/bin/docker stop %n
ExecStartPre=-/usr/bin/docker rm %n
ExecStartPre=/usr/bin/docker pull nicolaw/tiddlywiki
ExecStart=/usr/bin/docker run -p ${TW_PORT}:${TW_PORT} -e TW_PORT=${TW_PORT} --env-file /etc/tiddlywiki/%n.conf --user ${TW_DOCKERUID}:${TW_DOCKERGID} -v ${TW_DOCKERVOLUME}:/var/lib/tiddlywiki --name %n nicolaw/tiddlywiki
ExecStop=-/usr/bin/docker stop %n

[Install]
WantedBy=multi-user.target

这是来自的日志journalctl

Dec 11 00:54:58 ub-2004-ins3 systemd[1]: tidwiki.service: Found ordering cycle on multi-user.target/stop
Dec 11 00:54:58 ub-2004-ins3 systemd[1]: tidwiki.service: Found dependency on docker.service/stop
Dec 11 00:54:58 ub-2004-ins3 systemd[1]: tidwiki.service: Found dependency on tidwiki.service/stop
Dec 11 00:54:58 ub-2004-ins3 systemd[1]: tidwiki.service: Job multi-user.target/stop deleted to break ordering cycle starting with tidwiki.service/stop

我猜问题是由于部分WantedBy中的目标造成的[Install]。但我不知道除了 之外什么目标值是合适的multi-user.target

请帮忙。

答案1

您可以尝试添加

USER=root

.service文件。这为我解决了。

相关内容