TCPServer Error: Address already in use - bind(2)

后端 未结 8 1109
无人共我
无人共我 2020-12-07 07:38

Jekyll was working fine for me few weeks back but now all of a sudden it gives me the following error:

TCPServer Error: Address already in use - bind(2)
INFO         


        
相关标签:
8条回答
  • 2020-12-07 08:11

    Type this in your terminal to find out the PID of the process that's using the 3000 port:

    $ lsof -wni tcp:3000
    

    Then, use the number in the PID column to kill the process:

    $ kill -9 PID
    
    0 讨论(0)
  • 2020-12-07 08:13

    I was not qualified to post comment. So I added a new answer.

    I encountered this problem on Mac OS X 10.10.3. And I had never installed/used Jekyll before. I was not able to start jekyll server with its default port number 4000. The reason was that the port was the same as what NoMachine used. With

    $ sudo lsof -wni tcp:4000
    

    Note: Running this command without sudo will have no output.

    I saw this output:

    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)
    

    The port 4000 was occupied by nxd, which was the process started by NoMachine. And

    $ sudo kill -9 449
    

    would not work, because NoMachine's nxd process would keep restarting, with a new PID.

    Therefore, I had to either:

    • Changed my jekyll server port in the site _config.yml to another spared one. I appended the line below to _config.yml and it worked.

      port: 3000 # change server port to 3000

    or

    • Changed NoMachine's default nxd port, or Uninstall NoMachine
    0 讨论(0)
  • 2020-12-07 08:14

    Ctrl-Z doesn't terminate a program, but rather suspends it and sends it to the background. You can resume the program with the "fg" command. To actually terminate it, use 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.

    0 讨论(0)
  • 2020-12-07 08:16

    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...

    0 讨论(0)
  • 2020-12-07 08:18

    work around

    in /_site run: python -m SimpleHTTPServer 8080

    0 讨论(0)
  • 2020-12-07 08:23

    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
    
    0 讨论(0)
提交回复
热议问题