erl_call
(1)
Name
erl_call - Call/Start a Distributed Erlang Node
Synopsis
Please see following description for synopsis
Description
User Commands erl_call(1)
NAME
erl_call - Call/Start a Distributed Erlang Node
DESCRIPTION
erl_call makes it possible to start and/or communicate with
a distributed Erlang node. It is built upon the erl_inter-
face library as an example application. Its purpose is to
use an Unix shell script to interact with a distributed
Erlang node. It performs all communication with the Erlang
rex server, using the standard Erlang RPC facility. It does
not require any special software to be run at the Erlang
target node.
The main use is to either start a distributed Erlang node or
to make an ordinary function call. However, it is also pos-
sible to pipe an Erlang module to erl_call and have it com-
piled, or to pipe a sequence of Erlang expressions to be
evaluated (similar to the Erlang shell).
Options, which cause stdin to be read, can be used with
advantage as scripts from within (Unix) shell scripts.
Another nice use of erl_call could be from (http) CGI-bin
scripts.
EXPORTS
erl_call <options>
Each option flag is described below with its name, type
and meaning.
-a [Mod [Fun [Args]]]]:
(optional): Applies the specified function and
returns the result. Mod must be specified, however
start and [] are assumed for unspecified Fun and
Args, respectively. Args should be in the same for-
mat as for erlang:apply/3. Note that this flag
takes exactly one argument, so quoting may be nec-
essary in order to group Mod, Fun and Args, in a
manner dependent on the behavior of your command
shell.
-c Cookie:
(optional): Use this option to specify a certain
cookie. If no cookie is specified, the
~/.erlang.cookie file is read and its content are
used as cookie. The Erlang node we want to communi-
cate with must have the same cookie.
-d:
(optional): Debug mode. This causes all IO to be
output to the file ~/.erl_call.out.Nodename, where
Nodename is the node name of the Erlang node in
Ericsson AB Last change: erl_interface 3.7.9 1
User Commands erl_call(1)
question.
-e:
(optional): Reads a sequence of Erlang expressions,
separated by ',' and ended with a '.', from stdin
until EOF (Control-D). Evaluates the expressions
and returns the result from the last expression.
Returns {ok,Result} if successful.
-h HiddenName:
(optional): Specifies the name of the hidden node
that erl_call represents.
-m:
(optional): Reads an Erlang module from stdin and
compiles it.
-n Node:
(one of -n, -name, -sname is required): Has the
same meaning as -name and can still be used for
backwards compatibility reasons.
-name Node:
(one of -n, -name, -sname is required): Node is the
name of the node to be started or communicated
with. It is assumed that Node is started with erl
-name, which means that fully qualified long node
names are used. If the -s option is given, an
Erlang node will (if necessary) be started with erl
-name.
-q:
(optional): Halts the Erlang node specified with
the -n switch. This switch overrides the -s switch.
-r:
(optional): Generates a random name of the hidden
node that erl_call represents.
-s:
(optional): Starts a distributed Erlang node if
necessary. This means that in a sequence of calls,
where the '-s' and '-n Node' are constant, only the
first call will start the Erlang node. This makes
the rest of the communication very fast. This flag
is currently only available on the Unix platform.
-sname Node:
(one of -n, -name, -sname is required): Node is the
name of the node to be started or communicated
with. It is assumed that Node is started with erl
-sname which means that short node names are used.
Ericsson AB Last change: erl_interface 3.7.9 2
User Commands erl_call(1)
If -s option is given, an Erlang node will be
started (if necessary) with erl -sname.
-v:
(optional): Prints a lot of verbose information.
This is only useful for the developer and main-
tainer of erl_call.
-x ErlScript:
(optional): Specifies another name of the Erlang
start-up script to be used. If not specified, the
standard erl start-up script is used.
EXAMPLES
Starts an Erlang node and calls erlang:time/0.
erl_call -s -a 'erlang time' -n madonna
{18,27,34}
Terminates an Erlang node by calling erlang:halt/0.
erl_call -s -a 'erlang halt' -n madonna
An apply with several arguments.
erl_call -s -a 'lists map [{math,sqrt},[1,4,9,16,25]]' -n madonna
Evaluates a couple of expressions. The input ends with EOF
(Control-D) .
erl_call -s -e -n madonna
statistics(runtime),
X=1,
Y=2,
{_,T}=statistics(runtime),
{X+Y,T}.
^D
{ok,{3,0}}
Compiles a module and runs it. Again, the input ends with
EOF (Control-D) . (In the example shown, the output has been
formatted afterwards).
erl_call -s -m -a lolita -n madonna
-module(lolita).
-compile(export_all).
start() ->
P = processes(),
Ericsson AB Last change: erl_interface 3.7.9 3
User Commands erl_call(1)
F = fun(X) -> {X,process_info(X,registered_name)} end,
lists:map(F,[],P).
^D
[{<[email protected],0,0>,
{registered_name,init}},
{<[email protected],2,0>,
{registered_name,erl_prim_loader}},
{<[email protected],4,0>,
{registered_name,error_logger}},
{<[email protected],5,0>,
{registered_name,application_controller}},
{<[email protected],6,0>,
{registered_name,kernel}},
{<[email protected],7,0>,
[]},
{<[email protected],8,0>,
{registered_name,kernel_sup}},
{<[email protected],9,0>,
{registered_name,net_sup}},
{<[email protected],10,0>,
{registered_name,net_kernel}},
{<[email protected],11,0>,
[]},
{<[email protected],12,0>,
{registered_name,global_name_server}},
{<[email protected],13,0>,
{registered_name,auth}},
{<[email protected],14,0>,
{registered_name,rex}},
{<[email protected],15,0>,
[]},
{<[email protected],16,0>,
{registered_name,file_server}},
{<[email protected],17,0>,
{registered_name,code_server}},
{<[email protected],20,0>,
{registered_name,user}},
{<[email protected],38,0>,
[]}]
ATTRIBUTES
See attributes(5) for descriptions of the following
attributes:
Ericsson AB Last change: erl_interface 3.7.9 4
User Commands erl_call(1)
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | runtime/erlang |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
NOTES
This software was built from source available at
https://java.net/projects/solaris-userland. The original
community source was downloaded from
http://www.erlang.org/download/otp_src_R15B03-1.tar.gz
Further information about this software can be found on the
open source community website at http://www.erlang.org/.
Ericsson AB Last change: erl_interface 3.7.9 5