Однострочники Erlang с eval на удаленной оболочке

Я пытаюсь заставить erlang запустить небольшой фрагмент кода на удаленной машине с подключением к удаленной оболочке.

erl $ERL_COOKIE -name ${SHELL_NAME} -remsh ${REMOTE_SHELL} -eval 'io:fwrite("~p",[registered()]), init:stop()'

Оценка выполняется не в удаленной системе, а в какой-то локальной начальной загрузке. Я также пробовал -run и -s. Есть ли способ сделать это из erl?


person Vladimir Ralev    schedule 21.12.2013    source источник
comment
Проверьте модуль rpc. Кроме того, если вы запустите erl с именем и набором файлов cookie и нажмете Ctrl + G, вы можете запустить удаленную оболочку, подобную той, которую вы ищете (Ctrl + G, r target@node, c)   -  person Soup d'Campbells    schedule 21.12.2013


Ответы (1)


Если вы посмотрите документацию init и erl вы увидите, что выражение для -eval оценивается init в текущем узле erlang, а не оболочкой. Таким образом, использование -remsh для запуска оболочки, подключенной к другому узлу, не влияет на то, где выполняется -eval или -run и -s.

person rvirding    schedule 22.12.2013