Handle error ‘Address Already in Use’ when starting Jekyll.
I’ve set up my GitHub Page website locally. It works as expected. But sometimes, I’m unable to start Jekyll. I keep getting the following error after running ‘jekyll serve’ command.
jekyll 3.5.2 | Error: Address already in use - bind(2) for 127.0.0.1:4000
Port 4000 has already been occupied. To solve this issue, kill the process that is using this port.
Find the process which is using port 4000.
sudo lsof -i :4000
Kill the process with its id.
sudo kill -9 <PID>

Retry ‘jekyll serve’, the error ‘Port Already in Use’ is gone.
Similar problem - Port 4000 is occupied by NoMachine(nxd).
Johnny@Johnny-Mac:~$ sudo lsof -i :4000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nxd 11199 nx 3u IPv4 0x2fad2a11645a3de5 0t0 TCP *:terabase (LISTEN)
nxd 11199 nx 4u IPv6 0x2fad2a115cded5bd 0t0 TCP *:terabase (LISTEN)
Killing the thread won’t work, because NoMachine’s nxd process will keep restarting, with a new PID. Either you have to change the port for your app. Or, change the service port for NoMachine. NoMachine->Preferences->Connection preferences.


We can also shutdown NoMachine and disable the automatic start at next boot via command line.
On Linux:
sudo /etc/NX/nxserver --shutdown
sudo /etc/NX/nxserver --startmode manual
On Mac:
sudo /etc/NX/nxserver --shutdown
sudo /etc/NX/nxserver --startmode manual
On Windows: Open the CMD console as administrator and move to the bin folder under the NoMachine installation directory and run:
nxserver --shutdown
nxserver --startmode manual