man systemd.exec
说关于ExecSearchPath=
:
采用冒号分隔的绝对路径列表,相对于 Exec*=(例如 ExecStart=、ExecStop= 等)属性使用的可执行文件可以找到。如果用户未通过 Environment=、EnvironmentFile= 或 PassEnvironment= 提供 $PATH,ExecSearchPath= 将覆盖 $PATH。分配空字符串会删除以前的分配,并且多次将 ExecSearchPath= 设置为某个值将附加到以前的设置。
的默认值是多少ExecSearchPath=
?
答案1
默认二分搜索路径描述在命令行部分:
如果命令不是完整(绝对)路径,则会使用编译时确定的固定搜索路径将其解析为完整路径。搜索的目录包括使用 split和目录的系统上的
/usr/local/bin/
、/usr/bin/
、以及使用 split和 的系统上的对应目录。因此,如果可执行文件位于任何“标准”目录中,则仅使用可执行文件名称是安全的,而在其他情况下必须使用绝对路径。建议使用绝对路径以避免歧义。提示:可以使用以下命令查询此搜索路径/bin/
/usr/bin/
/bin/
sbin/
bin/
sbin/
systemd-path 搜索二进制文件-默认。
其自身默认值为ExecSearchPath
空,这会触发上述行为。
(请注意,这ExecSearchPath
是最近的事情,它是在 systemd 250 中添加的。)