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


90

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이 중단되었지만 해당 오류가 발생한다는 것을 알고 있습니다. 내 옵션은 무엇입니까? 재설치도 시도했습니다.


주소가 사용되지 않음을 정확히 어떻게 알 수 있습니까?
— Sergio Tulentsev 2012

나는 노력하고있다 lsof -i :<port number>플러스 같은 일이 다른 상자에서 일어나고있다
— Omnipresent

대체 포트를 지정하면 어떻게됩니까?
— Mark Thomas

불행히도 같은 일입니다. jekyll을 완전히 제거하고 다시 설치하는 가장 좋은 방법은 무엇입니까?
— Omnipresent

Ruby gem을 사용하여 설치했다면 gem uninstall jekyll. 기존 버전을 덮어 쓰기 위해 gem을 설치하지 않았다면. 브라우저 나 텔넷으로 포트에 접속하여 도움이되는지 확인하셨습니까?
— Alan W. Smith

답변:


224

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

$ lsof -wni tcp:3000

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

$ kill -9 PID

19
이것을 읽는 사람에게는 마지막 명령 PID에서 PID 아래에있는 실제 숫자로 대체 해야합니다. 예를 들어, 내가 달렸습니다kill -9 11734
— JGallardo

문제는 IPv6 구성 문제로 인한 무해한 경고 일 수도 있습니다. 서버는 먼저 이중 스택 IPv4 + IPv6 주소에 바인딩 한 다음 IPv6 전용 주소에 바인딩하려고합니다. 후자는 IPv6 주소가 이전 이중 스택 소켓에서 이미 사용 되었기 때문에 작동하지 않습니다.
— jpetazzo

17

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

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 제거

감사합니다.이 답변을 우연히 발견하기 전까지는 테라베이스가 무엇인지 알 수 없었습니다.
— 생명의 고속도로

10

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

실제 오류 메시지는 가짜로 보이며 무시할 수 있습니다. 동일한 오류 메시지 "사용중인 주소"가 표시되지만 jekyll은 예상 포트에서 어쨌든 잘 작동합니다.


또한 오류 메시지가 표시되지만 내 사이트를 실행할 수 있습니다. : 4000
— joshuahornby10

3

나는 최근에이 문제를 만났다.

위에서 언급 한 모든 방법을 시도하고 컴퓨터를 다시 시작했지만 여전히 해결할 수 없습니다 !!! 그런 다음 지킬을 제거하고 새 버전을 설치했습니다.

gem uninstall jekyll & gem install jekyll (슈퍼 유저 권한이 필요할 수도 있습니다).

비슷한 버그로 정말 짜증이 난다면이 sb 방법을 시도해 볼 가치가 있습니다.



0

이미 서버를 실행하고있는 다른 터미널이 열려 있지 않은지 확인하십시오. 이 경우 CTRL-C 를 눌러 서버를 종료하면 포트 / 주소가 해제됩니다.


0

먼저 3000 포트를 사용하는 프로세스의 PID를 찾아야합니다.

 $ps -ef

다음과 같이 출력 :

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

여기에서 볼 수 있습니다.

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

localhost : 3000은 pid: 6078

그 과정을 죽여라

$sudo kill 6078  

그런 다음 실행

$rails s

-1

일하다

에서 /_site실행 :python -m SimpleHTTPServer 8080

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.