man pages section 1: User Commands

Exit Print View

Updated: July 2014
 
 

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
     [{<madonna@chivas.du.etx.ericsson.se,0,0>,
                       {registered_name,init}},
      {<madonna@chivas.du.etx.ericsson.se,2,0>,
                       {registered_name,erl_prim_loader}},
      {<madonna@chivas.du.etx.ericsson.se,4,0>,
                       {registered_name,error_logger}},
      {<madonna@chivas.du.etx.ericsson.se,5,0>,
                       {registered_name,application_controller}},
      {<madonna@chivas.du.etx.ericsson.se,6,0>,
                       {registered_name,kernel}},
      {<madonna@chivas.du.etx.ericsson.se,7,0>,
                       []},
      {<madonna@chivas.du.etx.ericsson.se,8,0>,
                       {registered_name,kernel_sup}},
      {<madonna@chivas.du.etx.ericsson.se,9,0>,
                       {registered_name,net_sup}},
      {<madonna@chivas.du.etx.ericsson.se,10,0>,
                       {registered_name,net_kernel}},
      {<madonna@chivas.du.etx.ericsson.se,11,0>,
                       []},
      {<madonna@chivas.du.etx.ericsson.se,12,0>,
                       {registered_name,global_name_server}},
      {<madonna@chivas.du.etx.ericsson.se,13,0>,
                       {registered_name,auth}},
      {<madonna@chivas.du.etx.ericsson.se,14,0>,
                       {registered_name,rex}},
      {<madonna@chivas.du.etx.ericsson.se,15,0>,
                       []},
      {<madonna@chivas.du.etx.ericsson.se,16,0>,
                       {registered_name,file_server}},
      {<madonna@chivas.du.etx.ericsson.se,17,0>,
                       {registered_name,code_server}},
      {<madonna@chivas.du.etx.ericsson.se,20,0>,
                       {registered_name,user}},
      {<madonna@chivas.du.etx.ericsson.se,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