2017-02-23 869 views
0

我正在使用http-server爲了在特定文件夾中加載http://localhost:8484。 (出於測試目的) 我在我的代碼運行操作系統命令:如何停止特定端口上的http-server?

http-server -p 8484 test/ 

,我下載完以後不管我跑:

http-server stop 

然而,測試完成後,我看到了端口8484的http-server仍然活着!

運行ps aux | grep http

我應該以阻止它運行什麼命令?

  • 我使用的是Mac OSX(埃爾卡皮坦版)
  • 我寫在二郎的代碼(雖然我不認爲它很重要,因爲我正在從代碼shell命令)。
  • HTTP服務器:https://www.npmjs.com/package/http-server

我在二郎代碼:

my_test_() -> 
    Pid = spawn(fun() -> 
      Info = os:cmd("http-server -p 8484 test/resources"), 
      io:format(user,"*** Server: ~p~n",[Info]) 
     end), 

%%% Do some job %%% 

    Pid2 = spawn(fun() -> 
      Info = os:cmd("http-server stop"), 
      timer:sleep(200), 
      io:format(user,"*** Server stop: ~p~n",[Info]) 
     end), 
    timer:sleep(200), 
    exit(Pid2, kill), 
    exit(Pid, kill). 

回答

1

用途:

kill -9 {pid} 

而且,出於興趣,如果你想看到所有進程上運行一個特定的端口,用途:

lsof -i :{port} 

編輯:使用殺-9 ...是有點苛刻,我知道,有可能是做的更優雅的方式,但它確實把工作做好;-)

+0

感謝您的回答。這對使用erlang沒有幫助。我正在編輯我的問題以說清楚 – inbaly

0

你可以使用perc - 因爲Node.js http-server不是Erlang進程,而是Unix進程,所以需要使用該模塊(或者挖掘它的代碼來查看實現;))。

或者,從Erlang os:cmd("kill -9 5607").(其中5607是你的unix pid);