Подтвердить что ты не робот

Еще один способ выхода из IEX, кроме ctrl-C

Я знаю, что мы можем выйти из консоли IEX с помощью control-C. Мне любопытно, есть ли команда для ввода в консоль, которая также будет делать то же самое.

4b9b3361

Ответ 1

Я могу думать о 3 способах выхода из оболочки IEx:

  • Упомянутый <ctrl-c> ударил дважды или один раз, а затем q, а затем <enter>,
  • <ctrl-g>, а затем q + <enter>,
  • и, наконец, System.halt,

но есть разница между System.halt и другими.

А именно, что System.halt "останавливает время выполнения Erlang", а остальные просто "выходят из оболочки".

Если у вас запущен только один сеанс оболочки или сеанс не подключен к отдельной среде выполнения, то оба способа приведут к такому же результату. Но если у вас сеанс подключен к отдельной среде выполнения, например. через iex --remsh (удаленная оболочка), тогда запуск System.halt в нем остановит время выполнения и, таким образом, сделает оба процесса оболочки/время выполнения завершенным. Просто выключение оболочки (с помощью метода 1. или 2.) не остановит время выполнения, к которому он подключен.

Заключение: если вы подключаетесь к своей оболочке к другим версиям, тогда знайте, что System.halt остановит рабочую среду, к которой вы подключились. Если вы не хотите этого делать, используйте <ctrl-c>.

UPDATE: Недавно я также узнал о <ctrl-\>. Подробнее об этом читайте в в этой статье:

Я не знал, что вы можете выйти из оболочки, отправив Ctrl-. Оболочка немедленно выйдет. Насколько я знаю, он имеет то же самое эффект как прерывание оболочки в команде Break, это не влияет удаленных узлов, а также работает вне iex (например, вы можете используйте для завершения тестов).

Ответ 2

  1. Отключиться от оболочки и остановить текущий узел. Это то, что вам нужно в большинстве случаев.

    1.1. Ctrl+\ - стандартный метод выхода из оболочки Erlang. См. "4.4 Как мне выйти из оболочки Erlang?" в Эрланге - Начало работы.

    1.2. Ctrl+C, a, Enter - с помощью команды (a)bort в меню Break.

    1.3. Ctrl+C, Ctrl+C - выглядит как недокументированная особенность меню Break.

    1.4. Ctrl+G, q, Enter - через Ctrl+G, q, Enter q (quit erlang) меню User Switch (см. Erlang - shell - JCL Mode).

    Примечание: это делает удаленный узел iex --remsh если вы подключились к нему с помощью iex --remsh (см. iex --help и IEx - Remote Shells).

  2. Завершите работу узла, к которому вы подключены.

    2.1. System.halt - быстрое и грязное завершение работы. Система выполнения выходит с кодом состояния 0 (чистый выход без ошибок). Вы также можете вызвать System.halt(:abort) для прерывания с помощью дампа System.halt(:abort). То же, что и :erlang.halt.

    2.2. :init.stop ( System.stop в будущих версиях) - чистое завершение работы. Все приложения удаляются без проблем, весь код выгружается, и все порты закрываются до завершения работы системы, вызывая halt(Status).

    Примечание. Это позволяет вашей оболочке iex --remsh если вы подключились к удаленной оболочке с помощью iex --remsh.

Обратите внимание, что все эти опции отключены, если Erlang запускается с остановом игнорирования, +Bi, системным флагом: iex --erl +Bi (что может быть полезно, например, при запуске ограниченной оболочки). Смотрите Erlang - erl для получения дополнительной информации.

Ответ 3

Похож на

 System.halt

также работает.

Ответ 4

вход в оболочку  :c.q() и быть счастливым

Ответ 5

Я всегда думал, что ctrl-G а затем q зайти был официальным способом выхода из оболочки iex. http://elixir-lang.org/docs/v1.0/iex/IEx.html См. В разделе Команда Break, которая также показывает, как вы можете переключаться между альтернативные оболочки и т.д.