如何在Asterisk的Linux服务中设置环境变量,即使它没有真正的用户?

dom*_*ino 13 linux bash perl asterisk init.d

我创建了一个作为deamon运行的linux服务(并从/etc/init.d/X开始).我需要设置一些可以被应用程序访问的环境变量.

这是场景.该应用程序是一组Perl AGI脚本,依赖于(因此需要以asstisk用户身份运行)asterisk用户,但asterisk没有shell.理想情况下,我只需在/home/asterisk/.bashrc中设置它,但星号不存在.

如何在星号用户的运行环境中为我的应用设置环境变量,以便我的应用可以使用它们?

Fre*_*Foo 25

在启动脚本(/etc/init.d/yourdaemon)中设置它们,或在该文件中添加一行看起来像:

. /etc/yourdaemon.env
Run Code Online (Sandbox Code Playgroud)

并使用语法将环境变量放在该文件中export VAR=value.在类似Red Hat的系统上,我相信这样一个文件的正确位置/etc/sysconfig.Debian/Ubuntu似乎就是/etc/default出于此目的.

  • 有效.我是那个没有用过`export`的人.谢谢.对于未来的用户来说只是一个小问题 - 如果在运行`/ etc/init.d/myscript`时有一个文件来源,那么将它添加到`/ etc/default/myscript`是一个好习惯. (5认同)