31 Aug 2010
I've recently done a proof of concept using RabbitMQ, Spring AMQP and Spring Integration. This...
21 Jul 2010
In over ten years of experience building software, there are patterns and nuances that you...
13 Jul 2010
I set out to find an elegant solution to providing growl notifications for a JRuby...
05 May 2010
I've started playing around with Heroku lately and ran into an issue when I created...
30 Apr 2010
I've been meaning to investigate something that came to mind a while back and just...

Apache HTTPD: Address already in use: make_sock: could not bind to address 0.0.0.0:443

Published: 18 Aug 2007
apace logo

During my latest Apache configuration change I ran into an issue where I wasn’t able to restart/start. This was the first time I encountered this and I was fairly positive the issue wasn’t due to my configuration changes. I also knew that a port can only be used by one application or daemon at a time so that clued me in that something else was already using the port. While I can’t give a definitive cause for the situation, I can give pointers on resolving the issue. Note that this pertains to Apache running on Linux so your mileage may vary.

Here’s what I encountered after I ran the ./apachectl start command:

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

To solve the issue I first tried the following to see if there were some running httpd processes that shouldn’t have been running at this point:

ps -aux |grep httpd

This revealed no processes running. Next I tried netstat and that didn’t reveal anything either. Then I decide to view all processes with ps -aux, and after close inspection found the culprit:

root      5004  0.0  0.0  4384    4 ?        S    Apr25   0:00 bash
mysql     5095  0.0  0.7 41968 7980 ?        S    Apr25   0:47 ./mysqld --user mysql
apache    7323  0.0  0.0 3014368  0 ?        TW   Apr25   0:01

There was a phantom process (line 3 above) running as the apache user but didn’t have a command associated with it. Knowing that nothing else on the server runs as the apache user, I decided to kill the varmit:

kill -9 7323

After doing this, I was able to start the apache server again.

Has anyone else run into this issue and more importantly why it happened?


blog comments powered by Disqus