Вы путаете процессы erlang с процессами ОС.Erlang VM запускается в процессе ОС, интерпретирует и запускает программы erlang (скомпилированные в файлах лучей).Когда программа erlang вызывает spawn
или spawn_link
, виртуальная машина создает внутренний процесс, который будет запускаться внутренним планировщиком виртуальных машин.ОС ничего не знает об этих процессах.
Однако, когда программа erlang порождает порт (в вашем случае это обычный способ запуска внешних программ, таких как интерпретатор ruby), она создает новый процесс ОС, внешний по отношению к ВМ.,Этот внешний процесс связывается с ВМ, используя стандартный ввод-вывод.Если вы увидите процессы в вашей системе, вы заметите, что есть один процесс луча (erlang VM) и один процесс ruby.
Таким образом, запуск процессов ОС из erlang VM не будет иметь никакого значения по сравнению с запускомих любым другим способом (вручную, в сценарии оболочки и т. д.)