Programing

TCPServer 오류 : 주소가 이미 사용 중입니다. bind (2)

lottogame 2020. 9. 8. 21:53
반응형

TCPServer 오류 : 주소가 이미 사용 중입니다. bind (2)


Jekyll은 몇 주 전에 잘 작동했지만 갑자기 다음과 같은 오류가 발생합니다.

TCPServer Error: Address already in use - bind(2)
INFO  WEBrick::HTTPServer#start: pid=7300 port=4000

 % lsof -i :4000
 <fetches nothing>

포트에서 아무것도 실행되지 않더라도. 다음은 세부 사항입니다.

 % jekyll --version
Jekyll 0.11.2
 % where jekyll
/home/bhaarat/.rvm/gems/ruby-1.9.2-p290/bin/jekyll
/usr/bin/jekyll
 % ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
 % rvm --version
rvm 1.10.0 

다음은 출력입니다.

 % jekyll --server
Configuration from /home/bhaarat/blog/omnipresent.github.com/_config.yml
Auto-regenerating enabled: /home/bhaarat/blog/omnipresent.github.com -> /home/bhaarat/blog/omnipresent.github.com/_site
[2012-04-21 13:46:40] regeneration: 38 files changed
[2012-04-21 13:46:40] INFO  WEBrick 1.3.1
[2012-04-21 13:46:40] INFO  ruby 1.9.2 (2011-07-09) [i686-linux]
[2012-04-21 13:46:40] WARN  TCPServer Error: Address already in use - bind(2)
[2012-04-21 13:46:40] INFO  WEBrick::HTTPServer#start: pid=7382 port=4000

주소가 사용 중이 아니며 다른 이유로 인해 jekyll이 중단되었지만 해당 오류가 발생한다는 것을 알고 있습니다. 내 옵션은 무엇입니까? 재설치도 시도했습니다.


터미널에 입력하여 3000 포트를 사용하는 프로세스의 PID를 찾으십시오.

$ lsof -wni tcp:3000

그런 다음 PID 열의 번호를 사용하여 프로세스를 종료합니다.

$ kill -9 PID

댓글을 올릴 자격이 없습니다. 그래서 새로운 답변을 추가했습니다.

Mac OS X 10.10.3에서이 문제가 발생했습니다. 그리고 전에 Jekyll을 설치 / 사용한 적이 없습니다. 기본 포트 번호 4000으로 jekyll 서버를 시작할 수 없었습니다. 그 이유는 포트가 NoMachine이 사용하는 것과 동일했기 때문입니다.

$ sudo lsof -wni tcp:4000

참고 :없이이 명령을 실행하면 sudo출력이 없습니다.

이 출력을 보았습니다.

COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nxd     449   nx    3u  IPv4 0x8d22************      0t0  TCP *:terabase (LISTEN)
nxd     449   nx    4u  IPv6 0x8d22************      0t0  TCP *:terabase (LISTEN)

포트 4000은 nxdNoMachine에 의해 시작된 프로세스 인에 의해 점유되었습니다 .

$ sudo kill -9 449

NoMachine의 nxd 프로세스가 새 PID로 계속 다시 시작되기 때문에 작동하지 않습니다.

따라서 다음 중 하나를 수행해야했습니다.

  • 사이트의 내 jekyll 서버 포트 _config.yml를 다른 예비 포트로 변경했습니다 . 나는 아래 줄을 추가했고 _config.yml작동했습니다.

    port: 3000 # change server port to 3000

또는

  • NoMachine의 기본 nxd 포트 변경 또는 NoMachine 제거

Ctrl-Z프로그램을 종료하지 않고 중지하고 백그라운드로 보냅니다. "fg"명령으로 프로그램을 재개 할 수 있습니다. 실제로 종료하려면 Ctrl-C.

The actual error message seems to be bogus and can be ignored. I am getting the same error message "address in use" but jekyll works fine anyway at the expected port.


I have met this problem recently.

I tried out all the method mentioned above, and even restarted my computer, but still couldn't solve it!!! Then I removed the jekyll and installed a new version, it just worked.

gem uninstall jekyll & gem install jekyll (maybe you need super user priviledge).

If you really get annoyed with similar bugs, this sb method is worth a try...


work around

in /_site run: python -m SimpleHTTPServer 8080


Check that you don't have another terminal open where you are already running a server. If that is the case, do a CTRL-C to shutdown the server, and that will free the port/address.


First you need to find PID of the process that's using the 3000 port:

 $ps -ef

Output Like this:

1003      4953  2614  0 08:51 pts/0    00:00:00 -bash
1003      5634     1  0 08:56 pts/0    00:00:00 spring server | moviestore | started 2 hours ago                                           
1003      5637  5634  0 08:56 ?        00:00:01 spring app    | moviestore | started 2 hours ago | development mode                                                              
1003      6078  4953  0 09:03 pts/0    00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]              
1003      6117  2614  0 09:03 pts/1    00:00:00 -bash
root      6520     2  0 09:57 ?        00:00:00 [kworker/u8:2]
root      6936  1225  0 11:09 ?        00:00:00 [lightdm] <defunct>
1003      7084     1  0 11:09 ?        00:00:00 /usr/bin/python /usr/share/apport/apport-gtk
1003      7475     1  0 11:10 ?        00:00:00 /usr/bin/python /usr/share/apport/apport-gtk
root      8739  1225  1 11:29 tty8     00:00:11 /usr/bin/X :1 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
root      8853  1225  0 11:29 ?        00:00:00 lightdm --session-child 13 22
1002      8943     1  0 11:30 ?        00:00:00 /usr/bin/gnome-keyring-daemon --daemonize --login
1002      8954  8853  0 11:30 ?        00:00:00 gnome-session --session=ubuntu
1002      8992  8954  0 11:30 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
1002      8995     1  0 11:30 ?        00:00:00 /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
1002      8996     1  0 11:30 ?        00:00:00 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
1002      9007  8954  0 11:30 ?        00:00:00 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
1002      9015     1  0 11:30 ?        00:00:00 /usr/lib/gvfs/gvfsd
1002      9018  8954  1 11:30 ?        00:00:07 compiz
1002      9021     1  0 11:30 ?        00:00:00 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2
1002      9028  8954  0 11:30 ?        00:00:00 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
1002      9029  8954  0 11:30 ?        00:00:01 nautilus -n
1002      9030  8954  0 11:30 ?        00:00:00 /usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper
1002      9031  8954  0 11:30 ?        00:00:00 nm-applet
1002      9032  8954  0 11:30 ?        00:00:02 /opt/mTrac/mTrac
1002      9033  8954  0 11:30 ?        00:00:00 bluetooth-applet
1002      9045  9032  0 11:30 ?        00:00:00 /opt/mTrac/mTrac --type=zygote --no-sandbox
1002      9050     1  0 11:30 ?        00:00:00 /usr/lib/gvfs/gvfs-gdu-volume-monitor
1002      9054     1  0 11:30 ?        00:00:00 /usr/bin/pulseaudio --start --log-target=syslog
1002      9057     1  0 11:30 ?        00:00:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
1002      9062     1  0 11:30 ?        00:00:00 /usr/lib/gvfs/gvfs-afc-volume-monitor

here you can see :

1003      6078  4953  0 09:03 pts/0    00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]   

localhost:3000 have pid: 6078

kill that process by

$sudo kill 6078  

then run

$rails s

참고URL : https://stackoverflow.com/questions/10261477/tcpserver-error-address-already-in-use-bind2

반응형