Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to receive stdio and error_logger messages on a remote shell

Tags:

erlang

After spending a good while getting rb to work on a remote shell, I would like to get stdio / error logger messages on a remote shell, I have dug around changing group_leaders but it would seem to require changing the group_leader of all the running process, and my experiments have found that to be pretty unstable.

like image 420
Dale Harvey Avatar asked Mar 27 '10 22:03

Dale Harvey


1 Answers

The most straightforward way would be to not to mess with erlang io subsystem, but to use standard ERTS tools. 1 Start emulator with stdin/stdout wrapper/logger:

run_erl -daemon /tmp/ /some/log/dir erl

2 Then do:

ssh localhost -tt to_erl /tmp/
  1. makes emulator to start with pipes attached to stdin and stdout placed into /tmp and circular log files of stdin and stdout plus node liveness marks placed into /some/log/dir. Quick and dirty audit log for shell activity :)
  2. connects to stdin and stdout pipes. Benefit of "ssh -tt" is working completion in shell.

For more hints see "$ERL_TOP/erts*/bin/start" and man page for 'run_erl' and 'to_erl': http://www.erlang.org/doc/man/run_erl.html

like image 105
probsolver Avatar answered Sep 28 '22 07:09

probsolver