Erlang 如何在启动iNet httpd时获取有关错误的更多信息?

Erlang 如何在启动iNet httpd时获取有关错误的更多信息?,erlang,inets,Erlang,Inets,我是通过以下方式启动iNet http的: > inets:start(httpd, [{port, 8060}, {server_name, "myserver"}, > {server_root, "/Users/jonas/code"}, > {document_root, "/Users/jonas/code/mydocs"}, > {bind_address, {192, 168, 2,

我是通过以下方式启动iNet http的:

> inets:start(httpd, [{port, 8060}, {server_name, "myserver"},
> {server_root, "/Users/jonas/code"},                         
> {document_root, "/Users/jonas/code/mydocs"},             
> {bind_address, {192, 168, 2, 5}}]).                         
{error,inets_not_started}

所以我唯一的错误信息是
{error,inets\u not\u start}
。有什么方法可以让我获得更多关于出错原因的信息吗?

首先,要解决您的问题,只需通过以下方式启动应用程序(错误原因表明它未启动):


其次,一般来说,启动会提高Erlang/OTP错误/崩溃的可读性—但这里的情况并非如此。

首先,要解决问题,只需通过以下方式启动应用程序(错误原因表明它未启动):


其次,一般来说,启动会提高Erlang/OTP错误/崩溃的可读性—但这里的情况并非如此。

您需要先调用
inets:start/0
。有关更多详细信息,请参阅。

您需要先调用
inets:start/0
。有关更多详细信息,请参阅

开始(服务,服务配置,方式)->{ok,Pid}{错误,原因}

所以你需要先调用这个函数

开始()-> 开始(类型)->确定|{错误,原因}

类型: 类型=永久性|瞬态|临时性

 Starts the Inets application.
开始(服务,服务配置,方式)->{ok,Pid}{错误,原因}

所以你需要先调用这个函数

开始()-> 开始(类型)->确定|{错误,原因}

类型: 类型=永久性|瞬态|临时性

 Starts the Inets application.

这是一个很大的问题,因为函数不幸过载,而且启动
inets
是否也会自动启动
httpc
服务还不是很清楚

特别是在打开时,只需跳到该部分即可快速开始,从而丢失了中的注释

  • 使用名为
    default
    的默认配置文件启动
    inets
    应用程序本身
    httpc
    服务(这仅在中有说明)

  • (应称为
    )一旦
    inets
    应用程序已经启动,
    ftpc
    tftp
    httpc
    httpd
    )即可启动可在
    inets
    上运行的服务之一

start()->

start(Type)->确定{错误,原因}

启动iNet应用程序

start(Service,ServiceConfig)->{ok,Pid}{error,Reason}

start(Service,ServiceConfig,How)->{ok,Pid}{error,Reason}

之后动态启动iNet服务 iNet应用程序已启动
(附)


关于httpc的注释 从顶部开始:

启动iNet应用程序时,将启动默认配置文件的管理器进程。此API中未显式使用配置文件的函数将访问默认配置文件

也就是说,
httpc
服务将使用名为
default
的默认配置文件自动启动

1> inets:start().
ok
2> httpc:get_options(all, default).
{ok,[{proxy,{undefined,[]}},
     {https_proxy,{undefined,[]}},
     {pipeline_timeout,0},
     {max_pipeline_length,2},
     {max_keep_alive_length,5},
     {keep_alive_timeout,120000},
     {max_sessions,2},
     {cookies,disabled},
     {verbose,false},
     {ipfamily,inet},
     {ip,default},
     {port,default},
     {socket_opts,[]},
     {unix_socket,undefined}]}
3>
3> inets:start(httpc, [{profile, lofa}]).
{ok,<0.95.0>}
4>
5> httpc:get_options(all, default).
{ok,[...]}
6> httpc:get_options(all, lofa).
{ok,[...]}

这是一个很大的问题,因为函数不幸过载,而且启动
inets
是否也会自动启动
httpc
服务还不是很清楚

特别是在打开时,只需跳到该部分即可快速开始,从而丢失了中的注释

  • 使用名为
    default
    的默认配置文件启动
    inets
    应用程序本身
    httpc
    服务(这仅在中有说明)

  • (应称为
    )一旦
    inets
    应用程序已经启动,
    ftpc
    tftp
    httpc
    httpd
    )即可启动可在
    inets
    上运行的服务之一

start()->

start(Type)->确定{错误,原因}

启动iNet应用程序

start(Service,ServiceConfig)->{ok,Pid}{error,Reason}

start(Service,ServiceConfig,How)->{ok,Pid}{error,Reason}

之后动态启动iNet服务 iNet应用程序已启动
(附)


关于httpc的注释 从顶部开始:

启动iNet应用程序时,将启动默认配置文件的管理器进程。此API中未显式使用配置文件的函数将访问默认配置文件

也就是说,
httpc
服务将使用名为
default
的默认配置文件自动启动

1> inets:start().
ok
2> httpc:get_options(all, default).
{ok,[{proxy,{undefined,[]}},
     {https_proxy,{undefined,[]}},
     {pipeline_timeout,0},
     {max_pipeline_length,2},
     {max_keep_alive_length,5},
     {keep_alive_timeout,120000},
     {max_sessions,2},
     {cookies,disabled},
     {verbose,false},
     {ipfamily,inet},
     {ip,default},
     {port,default},
     {socket_opts,[]},
     {unix_socket,undefined}]}
3>
3> inets:start(httpc, [{profile, lofa}]).
{ok,<0.95.0>}
4>
5> httpc:get_options(all, default).
{ok,[...]}
6> httpc:get_options(all, lofa).
{ok,[...]}
7> httpc:get_options(all, balabab).
{error,inets_not_started}