bind: Address already in use - trying to restart sslh-ev with fork: true #521
|
It would be easier to describe the steps with the netstat output, I guess:
So, 65773 is the pid of the main sslh process
pid 65776 is the fork that serves the ssh session (65777)
65776 is still running - this is expected, as it should serve the existing ssh session - however the new 'main' process (65800) fails to bind Turns out the the process 65776 has bound itself to :443 meanwhile - this isn't expected (apparently neither for me nor for systemctl ;)) Did I misconfigure something? The config is pretty straightforward (basically a copy-paste from an example), I guess: Thanks. |
Replies: 2 comments 2 replies
|
Indeed, I can reproduce this. This is strange, I think bind() is only ever called at startup. |
|
Ok, this is caused by the child process not closing its file descriptors, so it still has a file descriptor to the listening socket, which is somehow kept around by the kernel, and the listening socket being reattributed to the child process. |
Ok, this is caused by the child process not closing its file descriptors, so it still has a file descriptor to the listening socket, which is somehow kept around by the kernel, and the listening socket being reattributed to the child process.