web-dev-qa-db-ja.com

Ctrl-C以外のIEXを終了する別の方法

Control-Cを使用してIEXコンソールを終了できることはわかっています。同じことをするコンソールに入力するコマンドがあるかどうか知りたいです。

30
User314159

IExシェルを終了する3つの方法を考えることができます。

  1. 上記の<ctrl-c>は2回または1回ヒットし、続いてq、次に<enter>
  2. <ctrl-g>そしてq + <enter>
  3. そして最後にSystem.halt

しかし、System.haltと他のものの間には違いがあります。

つまり、System.halt "はErlangランタイム"を停止し、他は "シェルを終了します "。

実行中のシェルセッションが1つしかない場合、またはセッションが別のランタイムに接続されていない場合は、どちらの方法でも同じ結果が得られます。ただし、セッションが別のランタイムに接続されている場合、たとえばiex --remsh(リモートシェル)を介してSystem.haltを実行すると、ランタイムが停止するため、シェルプロセスとランタイムの両方が終了します。 (方法1または2を介して)シェルを終了するだけでは、接続されているランタイムは停止しません。

結論:シェルを使用して他のランタイムに接続する場合は、System.haltが接続したランタイムを停止することを知ってください。やりたくない場合は、<ctrl-c>を使用してください。

更新:最近、私は<ctrl-\>についても知りました。あなたはそれについてもっと読むことができます この記事

私が知らなかったのは、Ctrl-を送信してシェルを終了できるということです。シェルはすぐに終了します。私の知る限り、これはBreakコマンドでシェルを中止するのと同じ効果があり、リモートノードには影響せず、iexの外部でも機能します(たとえば、テストを終了するために使用できます)。

30
Szymon Jeż
  1. シェルからを切断し、現在のノードを停止します。これはほとんどの場合に必要なものです。

    1.1。 _Ctrl+\_-Erlangシェルを終了するための標準的な方法。 「4.4Erlangシェルを終了するにはどうすればよいですか?」を参照してください。 in Erlang-はじめに

    1.2。 _Ctrl+C, a, Enter_- Break メニューの_(a)bort_コマンドを使用します。

    1.3。 _Ctrl+C, Ctrl+C_-[ブレーク]メニューの文書化されていない機能のように見えます。

    1.4。 _Ctrl+G, q, Enter_ser Switch メニューのq(quit erlang)コマンドを介して( Erlang --Shell --JCL Mode )を参照してください。

    注:これにより、リモートノードが生きたままになります _iex --remsh_(_iex --help_および IEx-リモートシェル を参照)。

  2. 接続しているノードをシャットダウンします。

    2.1。 _System.halt_ -迅速でダーティなシャットダウン。ランタイムシステムはステータスコード0で終了します(エラーのないクリーンな終了)。 System.halt(:abort) を呼び出して、コアダンプで中止することもできます。 _:erlang.halt_ と同じです。

    2.2。 _:init.stop__System.stop_ 将来のバージョン)-クリーンシャットダウン。 halt(Status) を呼び出すことにより、システムが終了する前に、すべてのアプリケーションがスムーズに停止され、すべてのコードがアンロードされ、すべてのポートが閉じられます。

    注:リモートに接続している場合、これによりシェルが存続します _iex --remsh_のシェル。

Erlangが無視ブレーク+ Bi、システムフラグ_iex --erl +Bi_で開始された場合、これらのオプションはすべて無効になっていることに注意してください(これは、制限されたシェルを実行している場合などに役立ちます)。詳細については、 Erlang --erl を参照してください。

14
raacer

のように見えます

 System.halt

また動作します。

7
User314159

シェルに入力:c.q()そして幸せに

私はいつもctrl-Gに続いてqをやめることが公式だと思っていましたiexシェルを終了する方法。 http://elixir-lang.org/docs/v1.0/iex/IEx.htmlBreakコマンドの下を参照してください。代替シェルなどを切り替えることができます。

1
GavinBrelstaff