无头服务器上的 profile.d

无头服务器上的 profile.d

将在无头系统上启动时运行的守护程序所需的变量放入 中是一个坏主意吗/etc/profile.d/?据我了解,profile.d直到有人通过交互式 shell 登录系统后才会执行。那么,我的守护进程是否最终需要保存系统变量profile.d,直到有人登录系统才设置这些变量,还是rc.local在无人值守的系统上运行后设置这些变量? (系统是运行bash的RHEL 6.5)

答案1

如果它不起作用,那就是个坏主意。我认为您对profile.d除非有人登录否则不运行的担忧是合理的。

将 init 脚本放入 /etc/rc.d/init.d(我认为这是 Red Hat 的正确目录;在 Ubuntu 中是 /etc/init.d)来启动守护进程。在此脚本中,您可以声明/定义所需的任何变量,并且当您启动守护程序二进制文件时,这些变量应该在范围内。

链接这里解释了该过程以及它为何优于该rc.local方法的确切原因。

另一个答案中提到的方法rc.local将不起作用,因为当执行返回到 Linux INIT 时,该脚本中设置的变量不再定义。因此,这是在任何人登录之前,因此它隐式地在 profile.d 运行之前。

答案2

直接回答你的问题,如果行不通的话那只是一个坏主意。所以我的直接回答是“不”,如果它不起作用,“是”如果它起作用。你尝试过吗?也就是说,您是否确认如果没有人登录,profile.d 不会在您的系统上运行?

作为如何使其工作的建议:rc.local以相同的方式编辑文件,以确保在启动时应用设置。

无论全新的普通安装会发生什么,您都应该尝试一下,看看您放入这些文件(profile.drc.local)中的设置是否按预期应用。如果它能正常工作/etc/profile.d,那么就可以在您的设置中正常工作,幸运的是。

这个链接linuxtopia 的一本在线书籍表明它rc.local位于/etc/rc.d/rc.localRHEL 6 中。

相关内容