[erlang-questions] How to stop a detached OTP app?

Ulf Wiger <>
Fri Aug 20 22:25:02 CEST 2010


How about this?

#!/usr/bin/env escript
%% -*- erlang -*-
%%! -name ctl

main([N]) ->
     Res = rpc:call(list_to_atom(N), init, stop, []),
     io:fwrite("==> ~p~n", [Res]).

It worked for me.

Call it with e.g. ./stop 

BR,
Ulf W

Armando Di Cianno wrote:
> I'm most certainly doing something braindead, which is stopping me
> from being able to nicely stop an OTP app I've written.
> 
> I've written a script to help me start, stop, and connect to the app
> for debugging purposes. However, no variation of 'stop' I've tried
> seems to work.
> 
> Here's the script:
> ### start
> #!/usr/bin/env bash
> 
> USER="myuser"
> APP="myapp"
> HOSTNAME=`hostname -f`
> NODE="${APP}@${HOSTNAME}"
> RELEASE_PATH="/usr/local/lib/${APP}"
> HOME="/var/lib/${APP}"
> LOG_PATH="/var/log/${APP}"
> 
> case "$1" in
> 	"start")
> 		su ${USER} -p -c \
> 			"erl -pa ${RELEASE_PATH}/ebin -name ${NODE} -boot ${APP} -mnesia
> dir '\"${HOME}\"' -sasl sasl_error_logger '{file,
> \"${LOG_PATH}/erlang.log\"}' -detached"
> 		;;
> 	"stop")
> 		su ${USER} -p -c \
> 			"erl -pa ${RELEASE_PATH}/ebin -name ctl_${NODE} -remsh ${NODE}
> -eval \"init:stop()\" -noshell"
> 		;;
> 	"debug")
> 		echo "*** Use Ctrl-C Ctrl-C to exit. ***"
> 		su ${USER} -p -c \
> 			"erl -pa ${RELEASE_PATH}/ebin -name ctl_${NODE} -remsh ${NODE}"
> 		;;
> 	*)
> 		echo "Please use 'start', 'stop', or 'debug."
> 		exit 1
> 		;;
> esac
> 
> exit 0
> ### end
> 
> For stopping, I've tried:
> * erl -pa ${RELEASE_PATH}/ebin -name ctl_${NODE} -remsh ${NODE} -eval
> "init:stop()"
> * erl -pa ${RELEASE_PATH}/ebin -name ctl_${NODE} -remsh ${NODE} -s init stop
> * erl -pa ${RELEASE_PATH}/ebin -name ctl_${NODE} -remsh ${NODE} -s
> ${APP} -extra stop  #where I've added some command arg processing to
> the app
> ... and some other variantions.
> 
> If I connect to the app using the debug mode of my script, and issue
> init:stop(), everything shuts down nicely.
> 
> Thanks for any insights into this. Cheers,
> __armando
> 
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
> 


-- 
Ulf Wiger
CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd
http://www.erlang-solutions.com


More information about the erlang-questions mailing list