【问题标题】:Erlang: daemon 'init.d' script fails to startErlang:守护进程“init.d”脚本无法启动
【发布时间】:2010-11-28 03:23:24
【问题描述】:

我有一个管理 Erlang 守护进程的 python 脚本。系统初始化后,通过 shell 使用时一切正常。

现在,当我在“/etc/init.d”下包含相同的脚本并在“/etc/rcX.d”中正确设置符号链接时,python 脚本仍然可以工作但是我的Erlang 守护进程无法启动并且没有留下明显的痕迹(例如 crash_dump、dmesg 等)

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

有什么线索吗?

【问题讨论】:

    标签: linux erlang init.d


    【解决方案1】:

    要以与系统相同的方式手动运行脚本,请使用service daemon start(如果您有该命令),否则请尝试

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

    这会强制脚本在已知的最小环境中运行,就像它在启动时一样。

    【讨论】:

    • 很棒的提示!太感谢了!我能够在一瞬间诊断出问题。似乎 'erl -env HOME /root' 不足以为 erl 设置环境。必须为“erl”本身设置环境变量“HOME”,即在使用 subprocess.Popen() 的 Python 脚本中,必须使用参数“env”来设置完整环境。
    【解决方案2】:

    感谢您的回答 - 我在启动时启动了 rabbitmq 的“Alice”RESTful 接口,这真是太糟糕了。关键是在我的初始化脚本中使用了 'env HOME=/root /path/to/alice/startup/script'。

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 2014-05-13
      • 1970-01-01
      • 2016-10-26
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多