1.2 KiB
1.2 KiB
Entry-Point Runtime — Elixir / Erlang (BEAM)
Signals to gather
argv0equalselixir,iex,mix,erl,beam.smp, or release scripts (bin/app start).- Release layouts:
_build/prod/rel/<app>/bin/<app>,releases/<version>/vm.args,sys.config. - Environment variables (
MIX_ENV,RELEASE_COOKIE,RELEASE_NODE). - Config files (
config/config.exs,config/prod.exs).
Implementation notes
- Recognise Distillery / mix release scripts that
execthe real BEAM VM. - When release script is invoked with
eval, treat the wrapper as part of the chain but classify runtime asElixir. - Inspect
vm.argsfor node name, cookie, and distributed settings. - For pure Erlang services (no Elixir), the same detector should fire using
erlhints.
Evidence & scoring
- Boost for release directories and BEAM VM binaries (
beam.smp). - Add evidence for config files and env vars.
- Penalise minimal images lacking release artefacts (could be generic shell wrappers).
Edge cases
- Phoenix apps often rely on
bin/serverwrapper—ShellFlow must collapse to release script. - Multi-node clusters may start multiple BEAM instances; treat as
Supervisorif several nodes stay active.