我创建了一个作为守护进程运行的 linux 服务(并从 /etc/init.d/X 开始)。我需要设置一些应用程序可以访问的环境变量。
这是场景。该应用程序是一堆 Perl AGI 脚本,它们依赖于(因此需要作为)星号用户运行,但星号没有外壳。理想情况下,我只需将其设置在/home/asterisk/.bashrc中,但星号不存在。
如何在星号用户的运行环境中为我的应用程序设置环境变量,以便我的应用程序可以使用它们?
要么在启动脚本 ( /etc/init.d/yourdaemon
) 中设置它们,要么在该文件中放入如下所示的一行:
. /etc/yourdaemon.env
并使用语法将环境变量放入该文件中export VAR=value
。在类似 Red Hat 的系统上,我相信此类文件的正确位置是/etc/sysconfig
. Debian/Ubuntu 似乎有/etc/default
这个目的。
如果您选择的发行版现在正在使用 systemd,请尝试systemctl edit --full asterisk.service
考虑EnvironmentFile
并Environment
这些文件通常位于此处:/etc/systemd/system/myservice.service
例如cron.service