我创建了一个 init.d 脚本,用于启动系统守护进程。守护进程使用系统 $PATH 来启动其他进程。然而,在 init.d 加载守护进程时,系统路径不包含“/usr/local/bin”。因此,我必须在重启后停止/启动 init.d 守护进程,这确实违背了 init.d 脚本的初衷!
这个问题说init.d脚本应该设置路径。启动时 init.d 脚本的 PATH 问题
虽然这是可能的,但我希望有更大的灵活性。系统设置 $PATH 变量后,是否可以强制 init.d 脚本在运行级别加载?
答案1
这并不是说在 init 期间路径发生了改变,而是普通 shell 获得了不同的环境。请参阅http://www.tldp.org/HOWTO/Path-4.html寻求解释。
在脚本顶部明确设置路径,或者创建一个新脚本来设置路径并在需要改变环境的脚本顶部提供该路径和源。