bin/134694: gives false-positive when unable to obtain socket [WAS: sshd(8) - alert user when fails to execute from rc.d]

Dimitry Andric dimitry at andric.com
Wed May 20 11:27:02 UTC 2009


On 2009-05-20 13:18, Tobias Fendin wrote:
> Does the child really die? I did a little test:
> 
> # /etc/rc.d/sshd status
> sshd is not running.
> # nc -l 22 >/tmp/ssh_test &
> [1] 1733
> # /etc/rc.d/sshd start
> Starting sshd.
> # /etc/rc.d/sshd status
> sshd is running as pid 1740.

This is because sshd binds to both IPv4 and IPv6 ports.  The IPv4 bind
fails, as you will see in syslog, while the IPv6 bind succeeds.  Thus
sshd keeps on running.

If you start two nc's (I don't know any way to do this with one
instance), e.g.:

nc -4 -l 22 > /tmp/ssh_test4 &
nc -6 -l 22 > /tmp/ssh_test6 &

and then try starting sshd, you should see it quit.


More information about the freebsd-hackers mailing list