[erlang-questions] init.d script and a control script for starting an erlang app on boot in ubuntu

Pablo Platt pablo.platt@REDACTED
Thu Nov 19 19:00:16 CET 2009






________________________________
From: Matt Stancliff <sysop@REDACTED>
To: Pablo Platt <pablo.platt@REDACTED>
Cc: erlang-questions@REDACTED
Sent: Mon, November 16, 2009 8:55:38 AM
Subject: Re: [erlang-questions] init.d script and a control script for starting an erlang app on boot in ubuntu

Pablo,

On Nov 15, 2009, at 9:55 PM, Pablo Platt wrote:
> Can someone post a simple init.d script with a control script for an erlang application on ubuntu?
> 
> I'll appreciate an example for a control script that can start/stop/status/restart/reload(hot code update)/debug(attach an erlang shell).
> The script should also be able to restart the app (heart?).
>
>  The best setup I've found for node scripting is from rabbitmq:
 >   Control script: http://hg.rabbitmq.com/rabbitmq-server/file/default/scripts/rabbitmqctl
  >  Control module: http://hg.rabbitmq.com/rabbitmq-server/file/default/src/rabbit_control.erl

I've tried to see how rabbitmq works and I'm a bit confused.
The /etc/init.d/rabbitmq-server file define DAEMON=/usr/sbin/rabbitmq-multi and call
$DAEMON start_all ${NODE_COUNT} > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err

/usr/sbin/rabbitmq-multi define SCRIPT=`basename $0` and call /usr/lib/bin/rabbitmq-multi:
surabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"

/usr/lib/bin/rabbitmq-multi starts the rabbitmq server by calling to rabbit_multi module start_all:
exec ... -s rabbit_multi ...
http://hg.rabbitmq.com/rabbitmq-server/file/9efe4a2ff6a5/src/rabbit_multi.erl

The rabbit_multi module create starts the nodes and create the pid files.

I didn't see a use of the files you link to rabbitmqctl and rabbit_control in the boot process.
They are probably being used to control the server after boot.

1. Does it have to be so complicated? 
For example, why does /usr/sbin/rabbitmq-multi calls /usr/lib/bin/rabbitmq-multi instead of starting the server?
Do I need to create and use pid files?

2. Does anyone have a simple boot script + control script that can be used with a mochiweb app?

Thanks


      


More information about the erlang-questions mailing list