éçã®äœ¿çš
Rebarã¯ä»¥åã®ããŒãžã§ã³ãšã®äºææ§ãç¶æããã«éåžžã«ç©æ¥µçã«éçºããŠããããããã®ãã¥ãŒããªã¢ã«ã«ã¯å€ãæ å ±ãå«ãŸããŠããå ŽåããããŸãã
Erlangã§éçºããå Žåãå€ãã®å Žåãç°ãªããœãŒã¹ããäŸåé¢ä¿ãåéããå¿ èŠãªããŒãžã§ã³ã远跡ãããããžã§ã¯ããé åžããããã®OTPãªãªãŒã¹ãäœæããå¿ èŠããããŸãã ç©äºã¯ããªãæ¥åžžçã§äžå¿«ã§ãã éçºãäžå¿«ãªç¬éãããå°ãªãããããã«ãBasã¯éåžžã«äŸ¿å©ãªããŒã«-RebarãäœæããŸããã ãã®èšäºã§ã¯ããµãŒãããŒãã£ã®äŸåé¢ä¿ã䜿çšããæ§æå¯èœãªOTPãªãªãŒã¹ãäœæããå®éã®äŸã§äœ¿çšããããšã®å©ç¹ãæããã«ããŸãã
Rebarã¯hg.basho.com/rebar/downloads/rebarããããŠã³ããŒãã§ããŸãã ããã¯ãè€æ°ã®ããŒã ã¢ãžã¥ãŒã«ãå«ã1ã€ã®åäžãã¡ã€ã«ã§ãã PATHå®è¡å¯èœãã¡ã€ã«ã®æ€çŽ¢ãã¹ãå ¥åãã䟿å©ãªå Žæãããšãã°
~/bin/
ãŸãã¯
/usr/local/bin/
ãŸãã
ãããžã§ã¯ãã«åãããããŸãããã
ãŸãããããžã§ã¯ããé 眮ãããã£ã¬ã¯ããªïŒ
gpt
ïŒãäœæããããã«ç§»åããŸãã
$ mkdir gpt && cd gpt
ãã®äžã«ãã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ãã¡ã€ã«ãçŽæ¥ä¿åãããµããã£ã¬ã¯ããªãäœæããŸãã
$ mkdir -p apps / gpt && cd apps / gpt
ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã±ã«ãã³ã®äœæïŒ
$ rebar create-app appid = gpt
appidãã©ã¡ãŒã¿ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ååãå®çŸ©ããããã«å¿ããŠãœãŒã¹ãã¡ã€ã«ã®ãã¬ãã£ãã¯ã¹ãå®çŸ©ããŸãã
$ ls -1 src gpt_app.erl gpt.app.src gpt_sup.erl
ã¢ããªã±ãŒã·ã§ã³ã®èª¬æãšgprocã®äŸåé¢ä¿ã.appãã¡ã€ã«ã®ç©ºçœïŒ
src/gpt.app.src
ïŒã«è¿œå ããŸãã
{説æããGProcãã¥ãŒããªã¢ã«ã}ã ... {ã¢ããªã±ãŒã·ã§ã³ã [ ã«ãŒãã«ã stdlib gprocïŒ <---ã¢ããªã±ãŒã·ã§ã³ã¯gprocã«äŸå ]}ã ...
ãããžã§ã¯ããä¿åãããŠããæäžäœãã£ã¬ã¯ããªã«æ»ãããã®äžã«
rel
ãµããã£ã¬ã¯ããªãäœæããŠããã«ç§»åããŸãã
$ cd ../../ $ mkdir rel && cd rel
Relã«ã¯ããªãªãŒã¹ãäœæããããã«å¿ èŠãªãã¡ã€ã«ãå«ãŸããŸã-ãããžã§ã¯ããå®è¡ããããã«å¿ èŠãªãã¹ãŠããã®ã©ã³ã¿ã€ã ã®äŸåé¢ä¿ãã¹ãŠã
rebar
ã䜿çšããŠã
nodeid
ãã©ã¡ãŒã¿ã«ååãæž¡ãããšã«ãããããŒãã®ç©ºçœãäœæããŸãã
$ rebar create-node nodeid = gptnode
reltool.config
ãã¡ã€ã«ã®ç·šéïŒ
... {lib_dirsã["../deps"ã "../apps"]},% <---ãããã®ãã£ã¬ã¯ããªã§ã¯ãreltoolã¯ã¢ããªã±ãŒã·ã§ã³ã®äŸåé¢ä¿ãæ€çŽ¢ããŸãã {relã "gptnode"ã "1"ã [ ã«ãŒãã«ã stdlib ãµã¹ã« gprocãïŒ <--- gprocã¢ããªã±ãŒã·ã§ã³ gptïŒ <---ã¢ããªã±ãŒã·ã§ã³ ]}ã ...
次ã«ã
files/vm.args
ç·šéããŠãããŒãã®ååãå€æŽ
files/vm.args
ãŸãã
-name gptnode@127.0.0.1
ã«
-sname gptnode @ localhost
ãããã¬ãã«ã®ãã£ã¬ã¯ããªã«æ»ããŸãããã
$ cd ../
ãããŠã次ã®å 容ã®
rebar.config
ãã¡ã€ã«ãäœæããŸãã
%%äŸåé¢ä¿ã¯ããã«ãããŸã {deps_dirã["deps"]}ã éçãèŠãã%%ãµããã£ã¬ã¯ã㪠{sub_dirsã["rel"ã "apps / gpt"]}ã %%ã³ã³ãã€ã©ãªãã·ã§ã³ {erl_optsã[debug_infoãfail_on_warning]}ã %%äŸåé¢ä¿ãªã¹ã %%察å¿ããgitãªããžããªã®masterãã©ã³ãã¯ãgprocãã£ã¬ã¯ããªã«è€è£œãããŸãã {depsã [ {gprocã "ã*"ã{gitã "http://github.com/esl/gproc.git"ã "master"}} ]}ã
ããã§ããªãªãŒã¹ãäœæããæºåãã§ããŸããã ããã€ãã®
rebar
ã³ãã³ããå®è¡ããŸãããïŒã³ãã³ãåºåã¯çç¥ãããŸãïŒïŒ
$ rebar get-deps $éçã®ã³ã³ãã€ã« $ rebar generate
get-deps
ã³ãã³ãã¯äŸåé¢ä¿ãããŠã³ããŒãããŸãã ç§ãã¡ã®å Žåãããã¯gprocã¢ããªã±ãŒã·ã§ã³ã§ãã
compile
ã³ãã³ãã¯æããã«ãã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ãã³ã³ãã€ã«ãã
generate
ã¯ãªãªãŒã¹ãäœæããŸãã
rel/gptnode
ã¯ãä»ã®ãã¹ãã«ç°¡åã«ç§»åã§ããŸãïŒãã¡ããããªãªãŒã¹ã«ã¯Erlangä»®æ³ãã·ã³ãå«ãŸããŠããããããã€ããªäºææ§ãå¿ èŠã§ãïŒã ãªãªãŒã¹ãäœæããåŸãäœãèµ·ãã£ãããå®è¡ããŸãã
ïŒcd rel / gptnode && sh bin / gptnode consoleïŒ
å¿ èŠãªãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠããããšã確èªããŸãã
ïŒgptnode @ localhostïŒ1> applicationïŒwhich_applicationsïŒïŒã [{saslã "SASL CXC 138 11"ã "2.1.9.2"}ã {gptããGProcãã¥ãŒããªã¢ã«ããã1ã}ã {gprocããGPROCããã0.01ã}ã {stdlibããERTS CXC 138 10ããã1.17.2ã}ã {ã«ãŒãã«ããERTS CXC 138 10ããã2.14.2ã}
gptãšgprocã«èå³ããããŸãã ã芧ã®ãšããããããã¯ãã®ãªã¹ãã«ãããŸãã
gprocã䜿çšãã
ãã®ããã
rebar
ã§ãããææ¡ããç°¡åãªãããžã§ã¯ããäœæããŠæäœããæ¹æ³ãåŠã³ãŸããã gprocã«åãããããŸãããã
ãåãã®ãšãããErlangã®ã¢ããªã±ãŒã·ã§ã³ã¯ãååãšããŠãã¡ãã»ãŒãžã亀æããå€ãã®ããã»ã¹ã§æ§æãããŠããŸãã
ããã»ã¹ãã¡ãã»ãŒãžã®éä¿¡å ãç¥ãããã«ã¯ãã¬ãžã¹ãã©ã«ããã€ãã®åº§æšãããã»ã¹èå¥åã«å€æãããå¿ èŠããããŸãã ããã©ã«ãã§ã¯ãErlang / OTPã¯ã¢ãã åã§ããã»ã¹ç»é²ãæäŸããŸãã ããã¯ç¡é§ã§ããã¢ãã ã¯ã¬ããŒãžã³ã¬ã¯ã¿ãŒã«ãã£ãŠåéããããäžåºŠäœæããããšãããŒãå šäœã®æäœãå®äºãããŸã§åç¶ãããããå¿ ç¶çã«ãã¹ãŠã®ã¡ã¢ãªãæ¯æžããå¿ èŠã«å¿ããŠäžæã®ååã§ããã»ã¹ãç»é²ããŸãã ããã«ãç°ãªãçšèªãã¢ãã ã«å€æãããã®ããã®ããã€ãã®ã«ãŒã«ãæ§æããå¿ èŠãããããããã®ãããªã¢ãããŒãã¯äžäŸ¿ã§ããããã«ãããã»ã¹ã¯1ã€ã®ååã§ã®ã¿ç»é²ã§ããŸãã
erlang:register/2
é¢æ°ã䜿çšããŠã¢ãã åã®äžã«ããã»ã¹ãç»é²ããããšã¯ãååãå€æŽããŠã¯ãªããªãå°æ°ã®é·æéæå¹ãªããã»ã¹ã«å¯ŸããŠã®ã¿æå¹ã§ã;ã¢ããã°ã¯åœä»€åããã°ã©ãã³ã°èšèªã®ã°ããŒãã«å€æ°ã§ãã
ãããã®å¶éãåé¿ããããã«ã次ã®ã¹ããŒã ããã䜿çšãããŸãã
- ã¬ãžã¹ãã©ããã»ã¹ãèµ·åããetsããŒãã«ãäœæããŠãã®ææè ã«ãªããŸãã
- ç»é²ãå¿ èŠãªããã»ã¹ãéå§ãããšãç»é²ã®åº§æšïŒã¢ãŒã©ã³çšèªïŒãšãã®èå¥åãå«ãã¡ãã»ãŒãžãã¬ãžã¹ãã©ã«éä¿¡ããŸãã
- ã¬ãžã¹ãã©ã¯ãã®ãããã³ã°ãetsããŒãã«ã«æžã蟌ã¿ã
erlang:monitor/2
ã«ããããã»ã¹ç£èŠãæå¹ã«ããŸãã - ç»é²ãããããã»ã¹ã¯ãå®äºæã«ç»é²è§£é€ã«é¢ããã¡ãã»ãŒãžãæ瀺çã«éä¿¡ãããããã®ããã»ã¹ãã¯ã©ãã·ã¥ãããšãã«ã¬ãžã¹ãã©ã
'DOWN'
ã¡ãã»ãŒãžãåä¿¡ãããã®åŸetsããŒãã«ããã¬ã³ãŒããåé€ããŸãã
ãã®ã¹ããŒã ã¯éåžžã«é »ç¹ã«äœ¿çšãããã»ãšãã©ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ç¬èªã®å®è£ ããããç¬èªã®æ©èœãšãã°ããããŸãã ãã¡ããããã®ã¬ãžã¹ãã©ãäœããŠããŒã¯ãªãã®ã«çœ®ãæããããšããèªç¶ãªæ¬²æ±ããããŸãã ãããŠããã®åé¡ã®è§£æ±ºçã¯ãéçºè ã®Ulf WigerãšåœŒã®gprocã¢ããªã±ãŒã·ã§ã³ïŒhttps://github.com/esl/gprocïŒã®åœ¢ã§ããããããŸããã
ã¢ããªã±ãŒã·ã§ã³APIã¯github.com/esl/gproc/blob/master/doc/gproc.mdã«ãããŸãã
ããŒã«ã«ç»é²
æãåçŽãªã±ãŒã¹ãèããŠã¿ãŸããã-ä»»æã®çšèªã§ã®ããã»ã¹ã®ããŒã«ã«ïŒçŸåšã®ããŒãã§ã®ïŒç»é²ã
äŸã®ãœãŒã¹ã³ãŒãã¯ã github.com / Zert / gproc-tutorial.gitã§å ¥æã§ããŸãã
gprocãä»ããŠç»é²ããããã»ã¹ã®ã³ãŒãã¯ã
gpt_proc.erl
ãã¡ã€ã«ã«ãããŸãã
gpt_sup.erl
ã¯ããã®ããã»ã¹ã°ã«ãŒãã®ã¹ãŒããŒãã€ã¶ãŒã³ãŒããå«ãŸããŠããŸãã
gpt_sup:start_worker/1
é¢æ°ãåŒã³åºããããšãããã»ã¹ãéå§ãããé¢æ°ã«å¯äžã®åŒæ°ãšããŠæž¡ãããååã§ç»é²ãããŸãã ãã®å Žåãããã¯æ°åã§ãã
äžèšã®ã³ãã³ãã䜿çšããŠããŒããèµ·åããç°ãªãèå¥åã䜿çšããŠäžé£ã®ããã»ã¹èµ·åãå®è¡ããŸããã
ïŒgptnode @ localhostïŒ1> [gpt_supïŒstart_workerïŒIdïŒ|| Id <-ãªã¹ãïŒseqïŒ1,3ïŒ]ã ïŒgpt_procïŒ29ïŒããã»ã¹ã®éå§ïŒ1 ïŒgpt_procïŒ29ïŒããã»ã¹ã®éå§ïŒ2 ïŒgpt_procïŒ29ïŒããã»ã¹ã®éå§ïŒ3 [{okã<0.61.0>}ã{okã<0.62.0>}ã{okã<0.63.0>}]
gproc:add_local_name(Name)
é¢æ°ã®åŒã³åºã
gproc:add_local_name(Name)
ã¯ãåå
Name
ã§åŒã³åºããŠããããã»ã¹ãç»é²ããŸãïŒãã®é¢æ°ã¯ã
gproc:reg({n,l,Name})
åãªãã©ãããŒ
gproc:reg({n,l,Name})
ãããã§ã
n
ã¯
name
ã
l
ã¯
local
ã§ãã ãã®åŸã
gproc:lookup_local_name(Name)
é¢æ°ã¯ããã»ã¹èå¥åãè¿ããŸãã
次ã«ãããã»ã¹ã®éå§ãåŸ æ©ããŠãåå4ã§ç»é²ããããã«ããã»ã¹ã®1ã€ã«æ瀺ããŸãããããããæ åœããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
handle_infoïŒ{awaitãId}ã #state {id = MyId} = StateïŒ-> gprocïŒawaitïŒ{nãlãId}ïŒã ïŒDBGïŒ "MyIdïŒãpããNNewIdïŒãpã"ã[MyIdãId]ïŒã {noreplyãState};
ããã§ã
gproc:await/1
é¢æ°ã¯ã次ã®åœ¢åŒã®åŒæ°ã§åŒã³åºãããŸãïŒ
{n, l, Id}
ã äœããã®çç±ã§ãã©ãããŒã¯ãããŸãããããŸãã§ãã
ïŒgptnode @ localhostïŒ2> gprocïŒlookup_local_nameïŒ1ïŒïŒ {åŸ ã£ãŠã4}ã {åŸ ã£ãŠã4}
èå¥å4ã§ããã»ã¹ãéå§ãããšãæåã«ã¡ãã»ãŒãžã衚瀺ããã次ã«æåã®åŸ æ©ããã»ã¹ããã¡ãã»ãŒãžã衚瀺ãããŸãã
ïŒgptnode @ localhostïŒ3> gpt_supïŒstart_workerïŒ4ïŒã ïŒgpt_procïŒ29ïŒããã»ã¹ã®éå§ïŒ4 ïŒgpt_procïŒ45ïŒMyIdïŒ1ã NewIdïŒ4ã {OKã<0.66.0>}
stop
ã¡ãã»ãŒãžãåä¿¡ããããã»ã¹ãåæ¢ããŸãããã
handle_infoïŒåæ¢ãç¶æ ïŒ-> {åæ¢ãéåžžãç¶æ };
ãããŠãããæ¢ããŸãïŒ
ïŒgptnode @ localhostïŒ4> gprocïŒlookup_local_nameïŒ1ïŒïŒ ãã㊠æ¢ãŸã
ãã®åŸãããã»ã¹ã¯ã¬ãžã¹ãã©ãŒããŒã¿ããŒã¹ããèªåçã«åé€ãããŸãã
ïŒgptnode @ localhostïŒ5> gprocïŒlookup_local_nameïŒ1ïŒã æªå®çŸ©
ã°ããŒãã«ç»é²
ErlangãåºãååžããŠããããšã¯ããç¥ãããŠããŸãã ããã¯ãããŒãéã§ééçã«ã¡ãã»ãŒãžã亀æããããšãæå³ããŸããã€ãŸããããã»ã¹èå¥åãæã£ãŠãããããã©ã®ããŒãã«ããããç¥ããªããŠãã¡ãã»ãŒãžãéä¿¡ã§ããŸãã gprocã«ããããã»ã¹ã®ããŒã«ã«ç»é²ã«ãããä»»æã®çšèªã1ã€ã®ã¢ãŒã©ã³ããŒãå ã®ããã»ã¹èå¥åã«ãããã³ã°ã§ããŸããããã®çšèªã䜿çšããŠä»ã®ããŒãã§èå¥åå€ãååŸããããšã¯ã§ããŸããã
ã¯ã©ã¹ã¿å ã®ããŒããä»ã®ããŒãããã¢ã¯ã»ã¹ã§ããããã«ããã»ã¹ãç»é²ã§ããããã«ããã«ã¯ãã°ããŒãã«ç»é²ããããŸãã GProcã¯ãgprocã®åŒã³åºã
gproc:add_global_name/1
ãå®è£ ããŸããããã«ããããã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã äŸãèããŠã¿ãŸãããã
æåã«ãã¯ã©ã¹ã¿ãŒã«çµåããã2ã€ã®ããŒããæ§ç¯ããŸããç¹å®ã®ãã³ãã¬ãŒãã«åŸã£ãŠæ§æãã¡ã€ã«ãäœæããæ©èœãããããã
rebar
ã¯ããã«åœ¹ç«ã¡ãŸãã ã¯ã©ã¹ã¿ãŒãäœæãããšãã¯ã次ã®è©³çŽ°ãèæ ®ããå¿ èŠããããŸãã
- ããŒãã«åãCookieå€ãèšå®ããŸã
- ãããã«ç°ãªãååãä»ããŸãã
- åããŒãã§å¿
èŠãª
kernel
ã¢ããªã±ãŒã·ã§ã³ã«é©åãªãã©ã¡ãŒã¿ãŒãæž¡ããŸã - GProcã䜿çšããå Žåãç®çã®ããŒãããŒã«ãGProcã«æž¡ããŸãã
æåã®2ã€ã®é ç®ã¯
files/vm.args
èšå®ãã
files/vm.args
ïŒ
##ããŒãã®åå -sname {{node}} ##åæ£ã¢ãŒã©ã³ã®Cookie -setcookie gptnode
ããã§ã
{{node}}
ã¯ããªãªãŒã¹ã®äœææã«å ¥åããããã¬ãŒã¹ãã«ããŒã§ãã
-setcookie
ä»®æ³ãã·ã³
-setcookie
ã¯ããã®ããŒãã®Cookieå€ãèšå®ããŸã;ã¯ã©ã¹ã¿ãŒã§ã¯ããã¹ãŠã®ããŒããåãå€ãæã€å¿ èŠããããŸãã
2çªç®ã®2ã€ã®ãã€ã³ãã¯ã
files/app.config
èšå®ãã
files/app.config
ã ãã¬ãŒã¹ãã«ããŒãããã§äœ¿çšãããŸãã
%% GProc {gprocã{{gproc_params}}}ã %%ã«ãŒãã« {kernelã{{kernel_params}}}ã
ãã¬ãŒã¹ãã«ããŒãåããããã«ã
reltool.config
ãã¡ã€ã«ã§ãåã®2ã€ã®ãã¡ã€ã«ããã³ãã¬ãŒããšããŠåŠçããå¿ èŠãããããšã瀺ããŸãã
{templateã "files / app.config"ã "etc / app.config"}ã {templateã "files / vm.args"ã "etc / vm.args"}
åããŒãã«1ã€ãã€ã2ã€ã®æ§æãã¡ã€ã«ãäœæããŸãïŒ
vars/dev1_vars.config
ããã³
vars/dev2_vars.config
ã dev1_vars.configãã¡ã€ã«ã«ã¯ã次ã®ãã¬ãŒã¹ãã«ããŒå€ãå«ãŸããŸãã
%% etc / app.config {gproc_paramsã ã[ {gproc_distã{['gpt1 @ localhost']ã [{workersã['gpt2 @ localhost']}]}} ] "}ã {kernel_paramsã ã[ {sync_nodes_mandatoryã['gpt2 @ localhost']}ã {sync_nodes_timeoutã15000} ] "}ã %% etc / vm.args {nodeã "gpt1 @ localhost"}ã
dev2_vars.config
ãã¡ã€ã«ã®
dev2_vars.config
ã
sync_nodes_mandatory
ããã³
node
ãã©ã¡ãŒã¿ãŒã亀æãããŸãã ãããããã詳现ã«åæããŸãããã
gproc_dist
ãã©ã¡ãŒã¿ãŒã¯gprocã¢ããªã±ãŒã·ã§ã³ãåç §ããŸã;ããã¯2ã€ã®ãªã¹ãã®ã¿ãã«ã§ãã æåã®ãªã¹ãã¯ãªãŒããŒïŒãã¹ã¿ãŒïŒã«ãªãããšãã§ããããŒãã§ããã2çªç®ã®ãªã¹ãã«ã¯ããŒãšå€ã®ã¿ãã«ãå«ãŸããŠããŸãããããŸã§ã®ãšãããã¯ã©ã¹ã¿ãŒã®åçŽãªã¡ã³ããŒïŒã¹ã¬ãŒãïŒã§ããããŒãã®ãªã¹ããèšå®ãã1ã€ã®ããŒ-
workers
ã®ã¿ãå¿ èŠã§ãã
ã«ãŒãã«ã¢ããªã±ãŒã·ã§ã³ã«ã¯2ã€ã®ãã©ã¡ãŒã¿ãŒããããŸãã æåã®
sync_nodes_mandatory
ã¯ãã¯ã©ã¹ã¿ãŒã«ååšããå¿ èŠãããããŒãã®ãªã¹ãã§ãã 2çªç®ã®
sync_nodes_timeout
ã¯ãåã®ãªã¹ãã®ããŒãã衚瀺ããããŸã§åããŒããåŸ æ©ããæéïŒããªç§ïŒã§ãã ãã®éã«ããŒãã衚瀺ãããªãã£ãå ŽåãããŒãã¯åæ¢ããŸãã äž¡æãéå§ããæéã確ä¿ããããã«ã15ç§ã®å€ã«ããŸãã
node
ã®å€ã¯ãä»®æ³ãã·ã³ã®èµ·åãã©ã¡ãŒã¿ãŒã«æžã蟌ãŸããŸããããã¯ãã®ååã§ãã
ããã§ãMakefileãã次ã®ã«ãŒã«ã䜿çšããŠ2ã€ã®ãªãªãŒã¹ãäœæããŸãã
dev1 dev2ïŒ mkdir -p dev ïŒcd rel && rebar generate target_dir = .. / dev / $ @ overlay_vars=vars/$@_vars.configïŒ
dev/dev1
ã«ç§»åãã2çªç®ã®ã¿ãŒããã«ãŠã£ã³ããŠãèµ·åïŒãŸãã¯ç»é¢ã«æ°ãããŠã£ã³ããŠãäœæ
),
dev / dev2ãã£ã¬ã¯ããªã«ç§»åã
.
.
./bin/gptnode console`ã æåã®Erlangã·ã§ã«ã§å©çšå¯èœãªããŒãã®ãªã¹ããèŠãŠã¿ãŸãããïŒ
ïŒgpt1 @ localhostïŒ1>ããŒãïŒïŒã [gpt2 @ localhost]
2çªç®ã®ããŒããæ£åžžã«èµ·åããã¯ã©ã¹ã¿ãŒã«æ¥ç¶ãããŠããããšãããããŸãã é·æéã«ããã£ãŠè³¢ããªããªãããã«ããããã«ãçŸåšã®ã·ã§ã«ã®ããã»ã¹ãäœããã®æ¡ä»¶ã§ã°ããŒãã«ã«ç»é²ããŸãã
ïŒgpt1 @ localhostïŒ2> gprocïŒadd_global_nameïŒ{shellã1}ïŒã æ¬åœ
å¥ã®ãŠã£ã³ããŠã§ããã®çšèªã®ããã»ã¹IDãèŠæ±ããŠãã ããã
ïŒgpt2 @ localhostïŒ2> gprocïŒlookup_global_nameïŒ{shellã1}ïŒã <3358.70.0>
ã芧ã®ãšãããæ£åžžã«ã ãã®ããã»ã¹ã«ã¡ãã»ãŒãžãéä¿¡ããããšã«ãããæåã®ããŒãã§ã¡ãã»ãŒãžãåä¿¡ã§ããŸãã
ïŒgpt2 @ localhostïŒ3> gprocïŒlookup_global_nameïŒ{shellã1}ïŒïŒ {theãmessage}ã äŒèš
flush()
ã³ãã³ãã§æåã®ããŒãã§èªã¿åããŸãïŒ
ïŒgpt1 @ localhostïŒ3> flushïŒïŒã ã·ã§ã«ã¯{theãmessage}ãåŸãŸãã ããã£ã
ãããã«
ããã ãã§ã éçã«é¢ããããã¥ã¡ã³ãã¯éåžžã«å°ãªãã次ã®äœ¿çšåŸã«åžžã«å¿ããããŠãããããç§ã¯èªåã®ããã«èšäºãæžãå§ããŸããã ãã®éçšã§ãgprocã®äœ¿çšãéå§ããŸããã2åèµ·ããªãããã«ããã¹ãŠã1ã€ã®èšäºã«ãŸãšããŸããã