2016-10-21 2 views
0

문제점 : 다음과 같이 noshell 명령을 실행하고 포트 6657에서 서버를 활성 상태로 유지하려고 시도하지만 작동하지 않는 것 같습니다.포트 6657의 erlang 서버입니까?

run_server.sh

erl -make 
erl -pa ebin/ -noshell -s server main 6657 -s init stop 

얼랑 모듈 기능 참고

main(Port) -> 
    controller:start(), 

, 얼랑 프롬프트에 나는 명령을 실행할 수 있습니다 - 잘 작동 server:main(6667) 합니다.

내가 그 명령에서 변경해야 할 사항을 제안 해 주시겠습니까?

고마워요! 당신은 모듈 이름의 권리가 가정

답변

1

는 (첫 번째 조각에서 serverchat_server 나중에 말) 문제가 가장 가능성이 코드는 하나의 정수를 요구하면서 -s module function arg1 [...] 당신 같은 (원자의 목록으로 인수를 전송하는 것입니다 말했다 server:main(6657) 작품). 당신은 -s 대신 -eval를 사용할 수 있습니다

erl -pa ebin/ -noshell -eval "server:main(6657)" -s init stop 
$ cat a.erl 
-module(a). 
-compile(export_all). 

main(Port) -> 
    io:format("~p~n", [Port]). 
$ erlc a.erl 
$ erl -noshell -pa . -s a main 6657 -s init stop 
['6657'] 
$ erl -noshell -pa . -eval 'a:main(6657)' -s init stop 
6657 
+1

http://erlang.org/doc/man/erl.html 'ERL -pa EBIN/-noshell -run "서버 : 주를 (6657) "-s init stop"이 작동을 멈 춥니 다. ** - Mod [Func [Arg1, Arg2, ...]] 실행 ** 초기화 플래그 ** – kevin

+1

죄송합니다. 그것은'-run'이 아니라'-eval'이어야합니다. 편집을 참조하십시오. – Dogbert

+0

이 명령은''erl -pa ebin/-noshell -eval "서버를 실행할 수 있습니다 : main (6657)"-s init stop'''without crash,하지만 서버가 항상 실행되고 있지 않습니다. 포트 6656에서 서버를 계속 실행하는 방법은 무엇입니까? 감사합니다 @Dogbert와 @kevin – J4cK

관련 문제