2009-09-14 147 views
3

我有一个用于管理Erlang守护进程的python脚本。一旦系统初始化,通过shell使用时一切正常。Erlang:守护进程的'init.d'脚本无法启动

现在,当我列入“/etc/init.d中”下,并在“/etc/rcX.d”正确设置符号链接相同的脚本中,Python脚本仍然工作我二郎后台驻留程序无法开始并没有留下可辨别的痕迹(例如crash_dump,dmesg等)

我也尝试通过'erl -env HOME/root'设置环境变量“HOME”,但仍然没有运气。

任何线索?

回答

5

要手动运行该脚本以同样的方式系统进行操作,使用service daemon start如果有命令,否则尽量

cd/
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" /etc/init.d/daemon start 

这迫使脚本与已知的,最小的环境,就像它会跑在启动时。

+0

大提示!太感谢了! 我能够在瞬间诊断问题。 看来'erl -env HOME/root'不足以为erl设置环境。必须为erl本身设置环境变量“HOME”,即使用subprocess.Popen()在python脚本中设置环境变量“HOME”,必须使用参数'env'来设置完整的环境。 – jldupont 2009-09-14 13:59:32

0

感谢您的回答 - 我有一段时间开始启动rabbitmq的“Alice”RESTful界面。关键是在我的init脚本中使用'env HOME =/root/path/to/alice/startup/script'。