以下を使用して、バックグラウンドでプロセスを開始しました。
erl -s system start -detached
プロセスを強制終了する必要があります。バックグラウンドで実行されているすべてのプロセスを強制終了する方法はありますか?
私は試した:
init:reboot()
システムで実行中のすべてのerlangプロセスを強制終了する場合は、可能であればスーパーユーザーとして実行してください。bashシェルの場合:
for i in `ps -ef | grep erl | awk'{print $ 2}' `; $iをエコーします。-9$iを殺す; 終わり
これを実現する 1 つの方法は、別の erlang コンソールを起動し、そこから最初のコンソールに接続し、適切に終了するために必要なことをすべて実行することです。
ターゲット ノードの名前を知っている必要があります。サンプル ノードは名前なしで開始されます。次の-name
-sname
ようにフラグを追加して指定できます。erl -sname node_1 -s system start -detached
別の名前で別のノードを開始します。erl -sname node_2
^G
で端末の (control G) を押します。node_2
r
最初のノードの名前を押して入力します: node_1@localhost
(またはそれが持っている名前)
プレスc
Eshell V5.10.1 (abort with ^G)
(node_2@localhost)1>
User switch command
--> r 'node_1@localhost'
--> c
Eshell V5.10.1 (abort with ^G)
(node_1@localhost)1>
最初のノードの名前を含む新しいプロンプトが表示されます。これで、すべてのコマンドが最初のノードで実行されます。最初のノードを終了するには、次のように入力できますerlang:halt().