原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface
联系邮箱:cto@188.com
Named Pipes
命名管道(Named Pipes)
A little known way to connect with an Erlang node that requires no explicit distribution is through named pipes. This can be done by starting Erlang with run_erl, which wraps Erlang in a named pipe 5:
还有一种鲜为人知连接Erlang节点的方法:命名管道(named pipes),可以通过使用run_erl 启动Erlang来完成 (Erlang会被包裹在命名管道内)5。 -------------------------------------------------------------------------------------$ run_erl /tmp/erl_pipe /tmp/log_dir "erl"
-------------------------------------------------------------------------------------
The first argument is the name of the file that will act as the named pipe. The second one is where logs will be saved 6 . 第一个参数是指定作为命名管道的文件,第二个是存放日志的目录6。 To connect to the node, you use the to_erl program: 你可以使用 to_erl程序连接到节点上: -------------------------------------------------------------------------------------
$ to_erl /tmp/erl_pipe
Attaching to /tmp/erl_pipe (^D to exit)
1>
-------------------------------------------------------------------------------------
And the shell is connected. Closing stdio (with ˆD) will disconnect from the shell while leaving it running. 连接上后,你可以使用ctrl+D来断开远程节点(只是断开,不会终结远程节点). [5] "erl" is the command being run. Additional arguments can be added after it. For example "erl +K true" will turn kernel polling on.
[6] Using this method ends up calling fsync for each piece of output, which may give quite a performance hit if a lot of IO is taking place over standard output.
[注5]:“erl”就是要运行的命令,你也可以在后面加上其它启动选项如"erl +K ture"会把打开内核kernel轮询。
[注6] :这个方法最终会调用fsync会同步每一块输出,如果有大量的IO操作产生,性能会下降得很厉害。