LoginSignup
9
1

More than 3 years have passed since last update.

ElixirのIExをコマンド入力で停止する(System.stop / System.halt)

Last updated at Posted at 2020-09-19

Elixir の対話型実行環境(REPL)である IEx の中にいる状態から、コマンド入力で抜け出る 方法です。

(結論)コマンド入力によるIEx停止方法

方法 1

System.stop で iexを停止します。

iex
iex(1)> System.stop
:ok

方法 2

System.halt で iexを即時停止することも一応できます。

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を文字入力で停止したい気持ちになった際などには是非どうぞ。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1