View Source start_erl
Start Erlang for embedded systems on Windows systems.
Description
The start_erl
program is specific to Windows NT/2000/XP (and later versions of
Windows). Although there are programs with the same name on other platforms,
their functionality is different.
This 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
ease customization of the program for local needs, such as cyclic restart
detection. There is also a "make"-file, written for the nmake
program
distributed with Microsoft Visual C++. This program can, however, be compiled
with any Win32 C compiler (possibly with minor modifications).
This program aids release handling on Windows systems. The program is to be
called by the erlsrv
program, read up the release data file start_erl.data
,
and start Erlang. Some options to start_erl
are added and removed by the
release handler during upgrade with emulator restart (more specifically option
-data
).
start_erl [<erl options>] ++ [<start_erl options>]
The start_erl
program in its original form recognizes the following options:
++
- Mandatory. Delimitsstart_erl
options from normal Erlang options. Everything on the command line before++
is interpreted as options to be sent to theerl
program. Everything after++
is interpreted as options tostart_erl
itself.-reldir <release root>
- Mandatory if environment variableRELDIR
is not specified and no-rootdir
option is specified. Tellsstart_erl
where the root of the release tree is located in the file system (typically<Erlang root>\\releases
). Thestart_erl.data
file is expected to be located in this directory (unless otherwise specified). If only option-rootdir
is specified, the directory is assumed to be<Erlang root>\\releases
.-rootdir <Erlang root directory>
- Mandatory if-reldir
is not specified and noRELDIR
exists in the environment. This specifies the Erlang installation root directory (under which thelib
,releases
, anderts-<Version>
directories are located). If only-reldir
(or environment variableRELDIR
) is specified, the Erlang root is assumed to be the directory exactly one level above the release directory.-data <data file name>
- Optional. Specifies another data file thanstart_erl.data
in the<release root>
. It is specified relative to the<release root>
or absolute (including drive letter, and so on). This option is used by the release handler during upgrade and is not to be used during normal operation. Normally the release data file is not to be named differently.-bootflags <boot flags file name>
- Optional. Specifies a file name relative to the release directory (that is, the subdirectory of<release root>
where the.boot
file and others are located). The contents of this file is appended to the command line when Erlang is started. This makes it easy to start the emulator with different options for different releases.
Notes
- As the source code is distributed, it can easily be modified to accept other
options. The program must still accept option
-data
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 must be properly installed before the upgrade for this to work.
- Although the program is located together with files specific to the emulator
version, it is not expected to be specific to the emulator version. The
release handler does not change option
-machine
toerlsrv
during emulator restart. Locate the (possibly customized)start_erl
program so that it is not overwritten during upgrade. - The default options of the
erlsrv
program are not sufficient for release handling. The machine started byerlsrv
is be specified as thestart_erl
program and the arguments are to contain++
followed by the desired options.