Control-Cを使用してIEXコンソールを終了できることはわかっています。同じことをするコンソールに入力するコマンドがあるかどうか知りたいです。
IExシェルを終了する3つの方法を考えることができます。
<ctrl-c>
は2回または1回ヒットし、続いてq
、次に<enter>
、<ctrl-g>
そしてq
+ <enter>
、System.halt
、しかし、System.halt
と他のものの間には違いがあります。
つまり、System.halt
"はErlangランタイム"を停止し、他は "シェルを終了します "。
実行中のシェルセッションが1つしかない場合、またはセッションが別のランタイムに接続されていない場合は、どちらの方法でも同じ結果が得られます。ただし、セッションが別のランタイムに接続されている場合、たとえばiex --remsh
(リモートシェル)を介してSystem.halt
を実行すると、ランタイムが停止するため、シェルプロセスとランタイムの両方が終了します。 (方法1または2を介して)シェルを終了するだけでは、接続されているランタイムは停止しません。
結論:シェルを使用して他のランタイムに接続する場合は、System.halt
が接続したランタイムを停止することを知ってください。やりたくない場合は、<ctrl-c>
を使用してください。
更新:最近、私は<ctrl-\>
についても知りました。あなたはそれについてもっと読むことができます この記事 :
私が知らなかったのは、Ctrl-を送信してシェルを終了できるということです。シェルはすぐに終了します。私の知る限り、これはBreakコマンドでシェルを中止するのと同じ効果があり、リモートノードには影響せず、iexの外部でも機能します(たとえば、テストを終了するために使用できます)。
シェルからを切断し、現在のノードを停止します。これはほとんどの場合に必要なものです。
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.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 を参照してください。
のように見えます
System.halt
また動作します。
シェルに入力:c.q()
そして幸せに
私はいつもctrl-Gに続いてqをやめることが公式だと思っていましたiexシェルを終了する方法。 http://elixir-lang.org/docs/v1.0/iex/IEx.htmlBreakコマンドの下を参照してください。代替シェルなどを切り替えることができます。