#Module systest_proc# * [Data Types](#types) * [Function Index](#index) * [Function Details](#functions) __This module defines the `systest_proc` behaviour.__

Required callback functions: `init/1`, `handle_stop/2`, `handle_kill/2`, `handle_status/2`, `handle_interaction/3`, `handle_msg/3`, `terminate/3`. ##Data Types## ###proc_info()##
proc_info() = #proc{}
###proc_ref()##
proc_ref() = pid()
##Function Index##
'kill -9'/1
behaviour_info/1
code_change/3
handle_call/3
handle_cast/2
handle_info/2
init/1
interact/2
joined_sut/3
kill/1
kill_after/2
kill_after/3
kill_and_wait/1
make_proc/3
proc_config/2
proc_data/1
proc_id/2
shutdown_and_wait/2
sigkill/1
start/1
start/3
status/1
status_check/1
stop/1
stop_and_wait/1
terminate/2
user_data/1
user_data/2
##Function Details## ###'kill -9'/1##
'kill -9'(ProcRef::proc_ref()) -> ok


###behaviour_info/1##
behaviour_info(X1::term()) -> [{atom(), integer()}] | undefined


###code_change/3## `code_change(OldVsn, State, Extra) -> any()` ###handle_call/3## `handle_call(Msg, From, State) -> any()` ###handle_cast/2## `handle_cast(Msg, State) -> any()` ###handle_info/2## `handle_info(Info, State) -> any()` ###init/1## `init(X1) -> any()` ###interact/2##
interact(ProcRef::proc_ref(), InputData::term()) -> term()


###joined_sut/3##
joined_sut(ProcRef::proc_ref(), SutRef::pid(), SiblingProcs::[{atom(), pid()}]) -> ok


###kill/1##
kill(ProcRef::proc_ref()) -> ok


###kill_after/2##
kill_after(TimeoutMs::integer(), ProcRef::proc_ref()) -> ok


###kill_after/3##
kill_after(TimeoutMs::integer(), ProcRef::proc_ref(), Killer::atom()) -> ok


###kill_and_wait/1##
kill_and_wait(ProcRef::proc_ref()) -> ok


###make_proc/3##
make_proc(Scope::atom(), Proc::atom(), Config::systest_config:config()) -> proc_info()


###proc_config/2## `proc_config(Sut, Proc) -> any()` ###proc_data/1##
proc_data(ProcRef::proc_ref()) -> [{atom(), term()}]


###proc_id/2## `proc_id(Host, Name) -> any()` ###shutdown_and_wait/2## `shutdown_and_wait(Owner, ShutdownOp) -> any()` ###sigkill/1##
sigkill(ProcRef::proc_ref()) -> ok


###start/1##
start(ProcInfo::proc_info()) -> {ok, pid()} | {error, term()}


###start/3##
start(Scope::atom(), Proc::atom(), Config::[{atom(), term()}]) -> {ok, pid()} | {error, term()}


###status/1##
status(ProcRef::proc_ref()) -> up | {down, term()}


###status_check/1## `status_check(Node) -> any()` ###stop/1##
stop(ProcRef::proc_ref()) -> ok


###stop_and_wait/1##
stop_and_wait(ProcRef::proc_ref()) -> ok


###terminate/2## `terminate(Reason, State) -> any()` ###user_data/1##
user_data(ProcRef::proc_ref()) -> [{atom(), term()}]


###user_data/2##
user_data(ProcRef::proc_ref(), Data::term()) -> ok