AF_UNIX: socket creation/removal semantics seem muddy
When binding lighttpd to an AF_UNIX socket, lighttpd gives the following error if the socket file already exists:
2005-11-29 15:28:50: (network.c.265) can't bind to port 80 Address already in use
If the socket does not exist, lighttpd creates it. However, on a graceful shutdown, lighttpd does not remove the socket, with the result that the server cannot be restarted without intermediate action (removing the socket manually).
My expectations would be as follows:
o When told to bind to an AF_UNIX socket, lighttpd creates the socket on start-up.
o If the socket file already exists, lighttpd either automatically unlinks it and creates a new one, or exits with an accurate error message.
o On shutdown, lighttpd unlinks the socket file.
This is in reference to lighttpd 1.4.8 with the stock config file (except for server.bind) under FreeBSD 4.11.
Updated by Anonymous about 17 years ago
Same problem here on PC-BSD:
PCBSD# lighttpd -f /etc/lighttpd/lighttpd.conf start 2006-09-17 22:48:44: (network.c.300) can't bind to port: 80 Address already in use PCBSD# lighttpd -f /etc/lighttpd/lighttpd.conf restart 2006-09-17 22:48:51: (network.c.300) can't bind to port: 80 Address already in use PCBSD#
Also available in: Atom