Tôi có một mô-đun genserver mà tôi cần để bắt đầu như một máy chủ đang chạy ẩn. Trong quá trình phát triển, tôi đã sử dụng một thiết bị đầu cuối chuẩn để bắt đầu nó như làErlang erl_call khiến mô-đun gen_server thoát
$erl
Erlang R13B01 (erts-5.7.2) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.2 (abort with ^G)
1> myserver:start_link().
<ok, some_pid>
Mọi thứ hoạt động tốt và tôi có thể gọi máy chủ từ các mô-đun khác.
Bây giờ, tôi cần phải chạy nó như một máy chủ liên tục và vấp ngã khi chức năng erl_call. Vì vậy, bây giờ tôi làm:
erl_call -d -s -a 'myserver start_link' -sname myserver_node
Nhưng, máy chủ khởi động, nhưng tắt tự động. Tôi đã kích hoạt cờ -d để xem có gì sai. Đây là những gì tôi thấy trong tệp theo dõi gỡ lỗi:
===== Log started ======
Fri Oct 2 04:42:32 2009
erl_call: sh -c exec erl -noinput -sname myserver_node -s erl_reply reply 174.143.175.70 42457 5882
=ERROR REPORT==== 2-Oct-2009::04:44:05 ===
** Generic server myserver terminating
** Last message in was {'EXIT',<0.59.0>,normal}
** When Server state == {20499,24596,28693,32790,36887,40984,45081}
** Reason for termination ==
** {function_clause,[{myserver,terminate,
[normal,
{20499,24596,28693,32790,36887,40984,45081}]},
{gen_server,terminate,6},
{proc_lib,init_p_do_apply,3}]}
Bất kỳ ý tưởng nào khiến máy chủ tự động tắt? Dấu vết thậm chí còn nói lý do chấm dứt là bình thường. Nhưng tôi đã không bắt đầu chấm dứt.