Elixir の対話型実行環境(REPL)である IEx
の中にいる状態から、コマンド入力で抜け出る 方法です。
(結論)コマンド入力によるIEx停止方法
方法 1
System.stop
で iexを停止します。
iex(1)> System.stop
:ok
方法 2
System.halt
で iexを即時停止することも一応できます。
iex(1)> System.halt
検証環境
- macOS(ローカル)
- Elixir 1.10.3 (compiled with Erlang/OTP 22)
もう少しくわしく(System.stop / System.halt)
System
は、Elixirのmoduleです。
VMまたはhostシステムとダイレクトに対話する機能を提供しています。
今回、IEx停止のために利用します。
System.stop
- Erlangランタイムシステムを 慎重に停止 します。
- すべてのアプリケーションをスムーズに停止し、すべてのコードをアンロードし、すべてのportを閉じてから、
halt/1
(≒後述のSystem.halt) を呼んでシステムを終了させます。
System.halt
- Erlangランタイムシステムを 即座に停止 します。
- アプリケーションやportを適切にシャットダウンせずに、Erlangランタイムシステムを終了させます。
- システムを慎重にシャットダウンする場合には、
stop/1
(≒前述のSystem.stop)を使用します。
※ 参考: Hex (System)
(補足)キーボードショートカットによるIEx停止方法
-
Ctrl + c
x 2回 -
Ctrl + \
(1回でiex即停止)
おわりに
普段づかいでiexを停止するには「Ctrl + c」の2回連打で全然オッケーだと思います。
個人的にもそうしてるんですが、
さいきん.circleci/config.yml
書いてるなかで「iex環境をcommandで停止する」runを記述する状況が生じて(謎といえば謎い状況ですが)、その一環でSystem.stopを書いたので、そこの流れから今回の記事をまとめてみました。
iexを文字入力で停止したい気持ちになった際などには是非どうぞ。