Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?