根据systemd 的服务文档, a+
可以用作systemd
服务配置中的前缀。
我尝试像这样使用它:
[Service]
ExecStartPre=+/usr/bin/tomcat1
Type=simple
Environment="NAME=tomcat1"
EnvironmentFile=/etc/sysconfig/tomcat1
ExecStart=/usr/libexec/tomcat/server start
SuccessExitStatus=143
User=tomcat
Group=tomcat
我想/usr/bin/tomcat1
以提升的权限运行,但是使用“+”号执行此操作会出现以下错误(注意,“-”不会给出错误)。
“systemd[1]: [/usr/lib/systemd/system/tomcat1.service:10] 可执行路径不是绝对路径,忽略:+/usr/bin/tomcat1”
我也尝试过ExecStartPre="+/usr/bin/tomcat1
,ExecStartPre="+"/usr/bin/tomcat1
等等。
我知道我可以使用 PermissionsStartOnly=true 作为替代方案,这应该可行,但这似乎不太理想。
答案1
您正在使用的文档与您正在使用的 systemd 版本不匹配。 “+”修饰符是在版本 231 中引入的。
答案2
看来我用作参考的文档可能不准确或过时(可能删除了对 +、! 等的支持)。运行man systemd.service
服务器端似乎只提到“-”。不过,如果有人能证实这一点,那就太好了。