Я новичок в Erlang, изучаю OTP. Я получил ошибку noproc
при попытке поговорить с руководителем во время выполнения. На самом деле, start_link
этого супервизора (реализованный мной, а не супервизором:start_link()), похоже, не был выполнен, так как io:fwrite
в его первой строке даже не было выведено.
Выяснилось, что проблема заключалась в том, что у одного из дочерних элементов супервизора отсутствовали некоторые gen_server
функции обратного вызова (которые не использовались приложением). Компилятор выдал предупреждение об этом и все, ошибок при запуске приложения не было. Я не уверен, что происходит, но разве не должно быть какой-то индикации ошибки?
Если это важно, вот как выглядит дочерняя спецификация самого супервизора:
ElementSup = {sc_element_sup,
{sc_element_sup, start_link, []},
permanent, 2000, supervisor, [sc_element]},
$ erlc -o ebin src/*erl
источником является приложение по адресу: github.com/erlware/Erlang-and-OTP-in-Action-Source/blob/master/ , я пропустил последние четыре функции обратного вызова. - person Nikita Fuchs   schedule 08.12.2020