檢視原始碼 Node (Elixir v1.16.2)
與 VM 節點相關的函式。
此模組中的部分函式會由編譯器內嵌,類似於 Kernel
模組中的函式,且會在文件明確標示為「由編譯器內嵌」。如需進一步瞭解內嵌函式,請查看 Kernel
模組。
摘要
函式
如果本機節點為作用中,則傳回 true
。
建立與 node
的連線。
強制中斷節點的連線。
傳回本機節點的神奇 cookie。
傳回系統中所有可見節點的清單,不包含本機節點。
根據給定的引數傳回節點清單。
監控節點的狀態。
與 monitor/2
的行為相同,但允許給予額外的選項,即 :allow_passive_connect
。
嘗試建立與節點的連線。
傳回目前的節點。
將 node
的神奇 cookie 設定為原子 cookie
。
傳回在 node
上套用 fun
啟動的新程序的 PID。如果 node
不存在,則會傳回無用的 PID。
傳回在 node
上套用 fun
啟動的新程序的 PID。
傳回在 node
上套用 module.function(args)
啟動的新程序的 PID。
傳回在 node
上套用 module.function(args)
啟動的新程序的 PID。
傳回在 node
上套用 fun
啟動的新連結程序的 PID。
傳回由 module.function(args)
在 node
上應用程式啟動的新連結處理序的 PID。
在節點上產生給定的函數,監控它並傳回它的 PID 和監控參考。
在節點上產生給定的模組和函數,傳遞給定的參數,監控它並傳回它的 PID 和監控參考。
將非分散式節點轉換為分散式節點。
將分散式節點轉換為非分散式節點。
類型
函數
@spec alive?() :: boolean()
如果本機節點為作用中,則傳回 true
。
也就是說,如果節點可以成為分散式系統的一部分。
建立與 node
的連線。
傳回 true
(如果成功)、false
(如果失敗),以及原子 :ignored
(如果本機節點未執行)。
如需更多資訊,請參閱 :net_kernel.connect_node/1
。
強制中斷節點的連線。
這將顯示在 node
上,彷彿本機節點已當機。此函數主要用於 Erlang 網路驗證協定。傳回 true
(如果斷線成功),否則傳回 false
。如果本機節點未執行,函數傳回 :ignored
。
如需更多資訊,請參閱 :erlang.disconnect_node/1
。
@spec get_cookie() :: atom()
傳回本機節點的神奇 cookie。
傳回 cookie(如果節點執行中),否則傳回 :nocookie
。
@spec list() :: [t()]
傳回系統中所有可見節點的清單,不包含本機節點。
與 list(:visible)
相同。
由編譯器內嵌。
根據給定的引數傳回節點清單。
當參數為清單時傳回的結果,是滿足清單元素的析取的節點清單。
如需更多資訊,請參閱 :erlang.nodes/1
。
由編譯器內嵌。
監控節點的狀態。
如果 flag
為 true
,則開啟監控。如果 flag
為 false
,則關閉監控。
如需更多資訊,請參閱 :erlang.monitor_node/2
。
如需監控所有節點的狀態變更,請參閱 :net_kernel.monitor_nodes/2
。
與 monitor/2
的行為相同,但允許給予額外的選項,即 :allow_passive_connect
。
如需更多資訊,請參閱 :erlang.monitor_node/3
。
如需監控所有節點的狀態變更,請參閱 :net_kernel.monitor_nodes/2
。
@spec ping(t()) :: :pong | :pang
嘗試建立與節點的連線。
如果失敗,則傳回 :pang
,如果成功,則傳回 :pong
。
範例
iex> Node.ping(:unknown_node)
:pang
@spec self() :: t()
傳回目前的節點。
它傳回與內建 node()
相同的結果。
將 node
的神奇 cookie 設定為原子 cookie
。
預設節點為 Node.self/0
,即本機節點。如果 node
為本機節點,則此函數也會將所有其他未知節點的 cookie 設定為 cookie
。
如果指定的 node
未執行,則此函數會引發 FunctionClauseError
。
傳回在 node
上套用 fun
啟動的新程序的 PID。如果 node
不存在,則會傳回無用的 PID。
有關可用選項清單,請參閱 :erlang.spawn/2
。
由編譯器內嵌。
傳回在 node
上套用 fun
啟動的新程序的 PID。
如果 node
不存在,則會傳回一個無用的 PID。
有關可用選項清單,請參閱 :erlang.spawn_opt/3
。
由編譯器內嵌。
傳回在 node
上套用 module.function(args)
啟動的新程序的 PID。
如果 node
不存在,則會傳回一個無用的 PID。
有關可用選項清單,請參閱 :erlang.spawn/4
。
由編譯器內嵌。
傳回在 node
上套用 module.function(args)
啟動的新程序的 PID。
如果 node
不存在,則會傳回一個無用的 PID。
有關可用選項清單,請參閱 :erlang.spawn/4
。
由編譯器內嵌。
傳回在 node
上套用 fun
啟動的新連結程序的 PID。
會在呼叫程序和新程序之間建立連結,這是原子操作。如果 node
不存在,則會傳回一個無用的 PID(而且由於連結,會收到一個退出訊號,退出原因為 :noconnection
)。
由編譯器內嵌。
傳回由 module.function(args)
在 node
上應用程式啟動的新連結處理序的 PID。
會在呼叫程序和新程序之間建立連結,這是原子操作。如果 node
不存在,則會傳回一個無用的 PID(而且由於連結,會收到一個退出訊號,退出原因為 :noconnection
)。
由編譯器內嵌。
在節點上產生給定的函數,監控它並傳回它的 PID 和監控參考。
由編譯器內嵌。
在節點上產生給定的模組和函數,傳遞給定的參數,監控它並傳回它的 PID 和監控參考。
由編譯器內嵌。
@spec start(node(), :longnames | :shortnames, non_neg_integer()) :: {:ok, pid()} | {:error, term()}
將非分散式節點轉換為分散式節點。
此功能會啟動 :net_kernel
和其他相關程序。
此函數在實務上很少被呼叫。相反地,節點會透過使用 --sname
和 --name
旗標,在命令列中命名並啟動。如果您需要使用此函數來動態命名節點,請務必透過呼叫 epmd -daemon
來確認 epmd
作業系統程序正在執行。
如果在已透過命令列介面或動態啟動分散式處理的情況下呼叫此函數,則會傳回錯誤。
範例
{:ok, pid} = Node.start(:example, :shortnames, 15000)
@spec stop() :: :ok | {:error, :not_allowed | :not_found}
將分散式節點轉換為非分散式節點。
對於網路中的其他節點,這與節點關閉相同。只有在節點使用 Node.start/3
啟動時才有可能,否則會傳回 {:error, :not_allowed}
。如果本機節點未執行,則會傳回 {:error, :not_found}
。