查看源码 start_erl
在 Windows 系统上为嵌入式系统启动 Erlang。
描述
start_erl
程序是 Windows NT/2000/XP(以及更高版本的 Windows)特有的。尽管在其他平台上存在同名的程序,但它们的功能是不同的。
此程序以编译形式(位于 <Erlang 根目录>\erts-<版本>\bin
下)和源代码形式(位于 <Erlang 根目录>\erts-<版本>\src
下)分发。源代码的目的是为了方便根据本地需求自定义程序,例如循环重启检测。还有一个为 Microsoft Visual C++ 发布的 nmake
程序编写的 “make” 文件。但是,此程序可以使用任何 Win32 C 编译器进行编译(可能需要进行少量修改)。
此程序有助于 Windows 系统上的发布处理。该程序由 erlsrv
程序调用,读取发布数据文件 start_erl.data
,然后启动 Erlang。在模拟器重启期间,发布处理器会添加和删除 start_erl
的一些选项(更具体地说,是 -data
选项)。
start_erl [<erl options>] ++ [<start_erl options>]
start_erl
程序在其原始形式中识别以下选项:
++
- 必须的。分隔start_erl
选项和正常的 Erlang 选项。命令行中++
之前 的所有内容都将被解释为发送给erl
程序的选项。++
之后 的所有内容都将被解释为start_erl
本身的选项。-reldir <发布根目录>
- 如果未指定环境变量RELDIR
且未指定-rootdir
选项,则为必须的。告知start_erl
发布树的根目录在文件系统中的位置(通常是<Erlang 根目录>\releases
)。预计start_erl.data
文件位于此目录中(除非另有指定)。如果仅指定了-rootdir
选项,则假定该目录为<Erlang 根目录>\releases
。-rootdir <Erlang 根目录>
- 如果未指定-reldir
且环境中不存在RELDIR
,则为必须的。这指定了 Erlang 安装根目录(lib
、releases
和erts-<版本>
目录位于该目录下)。如果仅指定了-reldir
(或环境变量RELDIR
),则假定 Erlang 根目录是发布目录正上方一级目录。-data <数据文件名>
- 可选的。指定<发布根目录>
中除start_erl.data
以外的其他数据文件。它是相对于<发布根目录>
指定的,也可以是绝对路径(包括驱动器盘符等)。此选项由发布处理器在升级期间使用,并且在正常操作期间不应使用。通常,发布数据文件不应使用不同的名称。-bootflags <启动标志文件名>
- 可选的。指定相对于发布目录的文件名(即,<发布根目录>
的子目录,其中.boot
文件和其他文件位于该子目录中)。此文件的内容会追加到启动 Erlang 时的命令行中。这使得可以轻松地使用不同的选项启动不同版本的模拟器。
注意
- 由于源代码是分发的,因此可以轻松修改以接受其他选项。该程序仍然必须接受选项
-data
,其语义如上所述,以便发布处理器能够正常工作。 - 通过检查发布数据文件中指定的模拟器版本的注册表项来找到 Erlang 模拟器。必须在升级之前正确安装新模拟器,才能使此方法正常工作。
- 尽管该程序与特定于模拟器版本的文件位于一起,但预计它不是特定于模拟器版本的。发布处理器在模拟器重启期间不会将
erlsrv
的-machine
选项更改为start_erl
。定位(可能已自定义的)start_erl
程序,使其在升级期间不会被覆盖。 erlsrv
程序的默认选项不足以进行发布处理。由erlsrv
启动的机器应指定为start_erl
程序,并且参数应包含++
,后跟所需的选项。