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.