Windows Linux 하위 시스템에서 sshd 서비스를 시작할 수 없습니다. 나는 사용 sudo service ssh restart
하고 나서 얻는다.
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)
내 컴퓨터에서 포트 22를 사용할 수 있는지 확인했습니다.
답변1
문제는 initctl
간단합니다. Linux용 Windows 하위 시스템은 Upstart를 실행하지 않으며 다른 서비스 관리자도 실행하지 않습니다. 대화할 만한 신생 기업이 없었습니다. Ubuntu 14 패키지 유지 관리 스크립트(및 기타 스크립트)는 Upstart를 제대로 확인하지 않고 존재한다고 가정하는 것을 선호합니다. 이는 서비스 관리자가 systemd로 변경되고 AskUbuntu Stack Exchange를 통해 많은 도구가 여전히 Upstart를 찾고 있는 Ubuntu 16으로 업그레이드할 때 Windows 하위 시스템에서 Ubuntu 14 도구를 실행하는 것과 같은 문제입니다. 리눅스용.
실제 어설션 실패는 알려진 문제로 2016년 10월에 해결된 것으로 보입니다. 이는 IPv6 및 IPv4의 결합 지원과 관련이 있습니다. GNU C 라이브러리는 IPv4 전용 모드에서 IPv4 매핑 IPv6 주소에 대해 한 가지를 가정합니다. Windows NT 커널과 Windows Linux 하위 시스템은 또 다른 기능을 제공합니다.
추가 읽기
- getaddrinfo로 인해 sshd가 실패합니다.. WSL 버그 추적기 #1113. 마이크로소프트. GitHub.
- Conda 및 pip가 ../sysdeps/posix/getaddrinfo.c:2583: getaddrinfo: 어설션과 충돌합니다.. WSL 버그 추적기 #1331. 마이크로소프트. GitHub.
- 소켓이 이미 바인딩된 경우 IPV6_V6ONLY 소켓 옵션이 실패해야 합니다.. WSL 버그 추적기 #982. 마이크로소프트. GitHub.
- https://askubuntu.com/questions/614970/
- https://askubuntu.com/questions/799506/
- https://askubuntu.com/questions/841667/