Erlang -- sys模块常用接口使用

sys模块提供了发送系统消息及调试信息的接口。常用接口change_code(Name, Module, OldVsn, Extra) -> ok | {error, Reason}change_code(Name, Module, OldVsn, Extra, Timeout) -> ok | {error, Reason}通知进程Name改变状态,调用此接口之前需要通过sys:suspend/1-2先挂起进程。change_code/4-5被调用后,Module:system
摘要由CSDN通过智能技术生成

sys模块提供了发送系统消息及调试信息的接口。

常用接口
  • change_code(Name, Module, OldVsn, Extra) -> ok | {error, Reason}

  • change_code(Name, Module, OldVsn, Extra, Timeout) -> ok | {error, Reason}
    通知进程Name改变状态,调用此接口之前需要通过sys:suspend/1-2先挂起进程。change_code/4-5被调用后,Module:system_code_change/4会被调用,用于转化新状态。

  • get_state(Name) -> State

  • get_state(Name, Timeout) -> State
    获取进程的状态。对于不同类型的进程,返回值State有所不同:
    对于gen_server而言,State为就是进程状态数据State
    对于gen_statem而言,State{StateName, Data};
    对于gen_event而言,State为注册的事件处理器的信息列表[{HandleModule, HandlerId, HandlerState}]

  • get_status(Name) -> Status

  • get_status(Name, Timeout) -> Status
    获取进程状态。

  • suspend(Name) -> ok

  • suspend(Name, Timeout) -> ok
    挂起进程,当一个进程被挂起,便只能系统消息而不能响应其他消息。

  • resume(Name) -> ok

  • resume(Name, Timeout) -> ok
    唤醒一个被挂起的进程。

  • terminate(Name, Reason) -> ok

  • terminate(Name, Reason, Timeout) -> ok
    异步终止进程。

  • log(Name, Flag) -> ok | {ok, [system_event()]}

  • log(Name, Flag, Timeout) -> ok | {ok, [system_event()]}
    Flag = true | {true, N :: integer() >= 1} | false | get | print
    Flagtrue时,开启事件记录,此时可以指定最大记录数N;
    Flagfalse时,关闭事件记录;
    Flagget时,返回记录的事件列表;
    Flagprint时,在标准输出打印记录的事件列表。

  • log_to_file(Name, Flag) -> ok | {error, open_file}

  • log_to_file(Name, Flag, Timeout) -> ok | {error, open_file}
    Flag = (FileName :: string()) | false
    Flag文件名时,将事件写入文件Flag中;
    Flagfalse时,则取消写入。

例子
-module(test_sys).
-behaviour(gen_server).

-export([start/0]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
-export([call_test/0, cast_test/0]).

-record(state, {
   }).

start() -
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值