Incomplete processing of "-eval" with closed stdin
Mon Dec 21 07:02:08 CET 2009
I recently found that a small script of mine, run by passing Erlang code
as an argument to "erl -eval", was failing when run by cron. I could
easily reproduce the problem on the command line using this example:
$ erl -eval 'io:fwrite("before\n"), receive after 1000 -> ok end,
io:fwrite("after\n"), init:stop().' < /dev/null
Eshell V5.7.4 (abort with ^G)
1> *** Terminating erlang ()
It seems like init is terminating the VM as soon as it detects that
stdin is closed, which is almost immediately.
Obviously my script should have had "-noshell" and adding it fixes the
problem. However, it does seem like a bug that the code passed by -eval
is cut off while still executing.
Perhaps "-noshell" should be applied automatically when erl is started
with stdin already closed?
I'm using R13B03.
Sam Bobroff | | M5 Networks
Why does my email have those funny headers? Because I use PGP to sign
my email (and you should too!): that's how you know it's really from me.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 258 bytes
Desc: OpenPGP digital signature
More information about the erlang-bugs