start_erl
Command
start_erl
Command summary
Start Erlang for embedded systems on Windows NT®
Description
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).
Exports
start_erl [<erl options>] ++ [<start_erl options>]
The start_erl
program in its original form recognizes the following options:
- ++
- Mandatory, delimits start_erl options from normal Erlang options. Everything on the command line before the
++
is interpreted as options to be sent to theerl
program. Everything after++
is interpreted as options tostart_erl
itself. - -reldir <release root>
- Mandatory if the environment variable
RELDIR
is not specified and no-rootdir
option is given. Tells start_erl where the root of the release tree is placed in the file-system (typically <Erlang root>\\releases). Thestart_erl.data
file is expected to be placed in this directory (if not otherwise specified). If only the-rootdir
option is given, the directory is assumed to be <Erlang root>\\releases. - -rootdir <Erlang root directory>
- Mandatory if
-reldir
is not given and there is noRELDIR
in the environment. This specifies the Erlang installation root directory (under which thelib
,releases
anderts-<Version>
directories are placed). If only-reldir
(or the environment variableRELDIR
) is given, 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 than start_erl.data in the <release root>. It is specified relative to the <release root> or absolute (including drive letter etc.). This option is used by the release handler during upgrade and should not be used during normal operation. The release data file should not normally be named differently.
- -bootflags <boot flags file name>
- Optional, specifies a file name relative to actual release directory (that is the subdirectory of <release root> where the
.boot
file etc. are placed). 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 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.
See also
erlsrv(1), release_handler(3)
© 2010–2017 Ericsson AB
Licensed under the Apache License, Version 2.0.