3

I can't start sshd service on windows linux subsystem. I use sudo service ssh restart, and I get

initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
sshd: ../sysdeps/posix/getaddrinfo.c:2583: getaddrinfo: Assertion `(__extension__ ({ const struct in6_addr *__a = (const struct in6_addr *) (sin6->sin6_addr.__in6_u.__u6_addr32); __a->__in6_u.__u6_addr32[0] == 0 && __a->__in6_u.__u6_addr32[1] == 0 && __a->__in6_u.__u6_addr32[2] == __bswap_32 (0xffff); }))' failed.
Aborted (core dumped)

I'm sure 22 port on my computer is available.

1
  • 1
    I don't know if that's your problem but being sure and making sure are two different things. Check netstat -tulpn to see if the port is actually in use. Commented Nov 14, 2016 at 4:52

1 Answer 1

3

The problem with initctl is simply that the Windows Subsystem for Linux does not run Upstart, nor any other service manager. There's no Upstart for it to talk to. Ubuntu 14 package maintenance scripts (and others) rather assume the presence of Upstart without properly checking. This is as much a problem for upgrading to Ubuntu 16 — where the service manager changed to systemd and (going by AskUbuntu Stack Exchange) a number of tools are still looking for Upstart only — as it is for running Ubuntu 14 tools on the Windows Subsystem for Linux.

The actual assertion failure is a known problem, that was apparently fixed in October 2016. It relates to combined IPv6 and IPv4 support. The GNU C library assumes one thing about IPv4-mapped IPv6 addresses in IPv4-only mode. The Windows NT kernel and the Windows Subsystem for Linux supply another.

Further reading

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .