Я немного растерялся. Y AWS отлично работает, как служба во время загрузки в LXQt 19.04. Но я намеревался использовать ограничитель скорости; установив его в arg_rewrite_mod
. Я полагаю, что если одна виртуальная машина запустит Y AWS, а другое - мое приложение и правильно установит пути к кодам, это приведет к снижению производительности, так как для вызовов с ограничением скорости будет использоваться ОС на базе ОС C, а не Erlang IP C. Следовательно, должна быть служебная информация IP C ОС, а не EVM, верно?
Я просто хотел, чтобы все под одной крышей устраняло это. Это одна вещь, где, вероятно, есть несколько способов решения проблемы (т.е. разделение моего проекта и дублирование частей, где это необходимо), но мне нравится «простота» всего в одном месте.
Я получаю ошибка, {badmatch, {error, enoent}}
, в оболочке после:
code:add_patha("/usr/lib/yaws/ebin").
application:start(yaws).
Это происходит в строке 548 в yaws_server:setup_dirs/1
( Github )
setup_dirs(GC) ->
Dir = yaws:id_dir(GC#gconf.id),
Ctl = yaws:ctl_file(GC#gconf.id),
ok = filelib:ensure_dir(Ctl),
case file:list_dir(Dir) of
{ok, LL} ->
lists:foreach(
fun(F) ->
file:delete(filename:join([Dir, F]))
end, LL -- ["CTL"]); %%% <---- LINE 548
{error, RSN} ->
error_logger:format("Failed to list ~p probably "
"due to permission errs: ~p",
[Dir, RSN]),
erlang:error(RSN)
end.
I создал UNIX группу appname
, состоящую из меня и пользователя yaws
. Я ходил по разным каталогам, которые нашел с помощью sudo find / -group yaws -type d
, и установил права доступа группы к тому же владельцу, а также переназначил группу с yaws
на appname
.... Я полагаю, поскольку я не установил id
это "default"
. Мои журналы (/var/log/yaws/report.log
), которые я надеялся, укажут на проблему. Они пусты.
Я, по сути, использую файл /etc/yaws/yaws.conf
по умолчанию. Раздел сервера был удален и помещен в /etc/yaws/conf.avail/
с символической ссылкой в /etc/yaws/conf.d/
.
ОБНОВЛЕНИЕ: отчет cra sh ----
2020-03-27T08:30:04.131073-05:00 notice: Yaws: Using config file /etc/yaws/yaws.conf
2020-03-27T08:30:04.136142-05:00 error: use_old_ssl in yaws.conf is no longer supported - ignoring
2020-03-27T08:30:04.137441-05:00 notice: Yaws: Using global subconfig file /etc/yaws/conf.d/localhost.conf
2020-03-27T08:30:04.140979-05:00 error:
crasher:
initial call: yaws_server:init/1,
pid: <0.114.0>,
registered_name: [],
error: {{badmatch,{error,enoent}},
[{yaws_server,setup_dirs,1,[{file,"yaws_server.erl"},{line,548}]},
{yaws_server,init2,5,[{file,"yaws_server.erl"},{line,224}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]},
ancestors: [yaws_sup,<0.108.0>],
message_queue_len: 0,
messages: [],
links: [<0.109.0>,#Port<0.6>],
dictionary: [{gc,{gconf,"/usr/lib/yaws",false,612,"/var/log/yaws",
["/usr/local/lib/yaws-appmods/ebin","/usr/lib/yaws/examples/ebin"],
[],[],30000,nolimit,400,1000000,8000,nolimit,[],10240,[],0,30,
["/usr/local/lib/yaws-appmods/include","/usr/lib/yaws/examples/include"],
"/usr/bin/php-cgi","Yaws 2.0.6","default",false,[],8,undefined,
[inet],yaws_session_server,undefined,120000,3600000,disable}},
{start_time,{{2020,3,27},{8,30,4}}}],
trap_exit: true,
status: running,
heap_size: 1598,
stack_size: 27,
reductions: 32410;
neighbours:
2020-03-27T08:30:04.141195-05:00 error:
supervisor: {local,yaws_sup},
errorContext: start_error,
reason: {{badmatch,{error,enoent}},
[{yaws_server,setup_dirs,1,[{file,"yaws_server.erl"},{line,548}]},
{yaws_server,init2,5,[{file,"yaws_server.erl"},{line,224}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]},
offender: [{pid,undefined},
{id,yaws_server},
{mfargs,
{yaws_server,start_link,
[{env,false,false,false,false,false,false,"default",latin1}]}},
{restart_type,permanent},
{shutdown,120000},
{child_type,worker}]
2020-03-27T08:30:04.145621-05:00 error:
crasher:
initial call: application_master:init/4,
pid: <0.107.0>,
registered_name: [],
exit: {{{shutdown,{failed_to_start_child,yaws_server,{{badmatch,{error,enoent}},
[{yaws_server,setup_dirs,1,[{file,"yaws_server.erl"},{line,548}]},
{yaws_server,init2,5,[{file,"yaws_server.erl"},{line,224}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}}},
{yaws_app,start,[normal,[]]}},
[{application_master,init,4,[{file,"application_master.erl"},{line,138}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]},
ancestors: [<0.106.0>],
message_queue_len: 1,
messages: [{'EXIT',<0.108.0>,normal}],
links: [<0.106.0>,<0.43.0>],
dictionary: [],
trap_exit: true,
status: running,
heap_size: 987,
stack_size: 27,
reductions: 225;
neighbours:
2020-03-27T08:30:04.147171-05:00 notice:
application: yaws,
exited: {{shutdown,{failed_to_start_child,yaws_server,{{badmatch,{error,enoent}},
[{yaws_server,setup_dirs,1,[{file,"yaws_server.erl"},{line,548}]},
{yaws_server,init2,5,[{file,"yaws_server.erl"},{line,224}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},
{line,249}]}]}}},{yaws_app,start,[normal,[]]}},
type: temporary
РЕШЕНИЕ: Из справки из приведенного ниже ответа и изучения различных путей Y AWS с использованием find
выше я обнаружил, что домашний каталог по умолчанию для меня был `/ var / cache / фрамбезия /». У меня работал следующий ряд команд в оболочке:
os:putenv("YAWSHOME","/var/cache/yaws/").
code:add_patha("/usr/lib/yaws/ebin").
application:start(yaws).