This describes the start_erl program specific to Windows NT. Although there exists programs with the same name on other platforms, their functionality is not the same.
The start_erl program is distributed both in compiled form (under <Erlang root>\erts-<version>\bin) and in source form (under <Erlang root>\erts-<version>\src). The purpose of the source code is to make it possible to easily customize the program for local needs, such as cyclic restart detection etc. There is also a "make"-file, written for the nmake program distributed with Microsoft® Visual C++®. The program can however be compiled with any Win32 C compiler (possibly with slight modifications).
The purpose of the program is to aid release handling on Windows NT®. The program should be called by the erlsrv program, read up the release data file start_erl.data and start Erlang. Certain options to start_erl are added and removed by the release handler during upgrade with emulator restart (more specifically the -data option).
start_erl [<erl options>] ++ [<start_erl options>]
The start_erl program in its original form recognizes the following options:
As the source code is distributed, it can easily be modified to accept other options. The program must still accept the -data option with the semantics described above for the release handler to work correctly.
The Erlang emulator is found by examining the registry keys for the emulator version specified in the release data file. The new emulator needs to be properly installed before the upgrade for this to work.
Although the program is located together with files specific to emulator version, it is not expected to be specific to the emulator version. The release handler does not change the -machine option to erlsrv during emulator restart. Place the (possibly customized) start_erl program so that it is not overwritten during upgrade.
The erlsrv program's default options are not sufficient for release handling. The machine erlsrv starts should be specified as the start_erl program and the arguments should contain the ++ followed by desired options.
erlsrv(1), release_handler(3)