Systemd RootDirectory选项失败

时间:2018-07-20 15:18:33

标签: ubuntu systemd chroot

我写了一个简单的服务,可以在Ubuntu 17.0上试用Systemd。当我使用选项RootDirectory时,它无法启动我的服务。以下是一些详细信息:

[Unit]
Description= my service

[Service]
RootDirectory=/home/myname/myservice/
ExecStart=myservice_exec


[Install]
WantedBy=multi-user.target
Alias=myservice.service

二进制文件位于

/home/myname/myservice/myservice_exec

这是我从journalctl中得到的错误:

Failed at step EXEC spawning : No such file or directory

其他可能有用的详细信息:

>/lib/systemd/systemd --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN

有人知道原因吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

在systemd v232中,ExecStart必须始终指定要使用绝对路径运行的二进制文件。我认为该路径相对于指定的根目录,因此请尝试以下操作:

ExecStart=/myservice_exec

请注意,除非myservice_exec是硬链接二进制文件,否则这还需要在lib下存在一个填充程度较高的/home/myname/myservice/目录,并且可能还包含一些其他文件。