WSL(Linux용 Windows 하위 시스템)은 이제 Ubuntu, Debian 등과 같은 많은 인기 있는 Linux 배포판에서 사용하는 init 시스템 및 서비스 관리자인 systemd를 지원합니다. (systemd란?).
init 시스템 기본값은 최근에 SystemV에서 변경되었으며, 이제 systemd는 명령 기본값을 사용하여 wsl --install 설치될 Ubuntu의 현재 버전에 대한 기본값입니다. 현재 버전의 Ubuntu 이외의 Linux 배포판은 SystemV init와 유사한 WSL init를 계속 사용할 수 있습니다. systemd로 변경하려면 systemd를 사용하도록 설정하는 방법을 참조하세요.
Linux에서의 systemd란 무엇인가요?
systemd.io에 따르면 "systemd는 Linux 시스템의 기본 구성 요소 모음입니다. PID 1로 실행되고 나머지 시스템을 시작하는 시스템 및 서비스 관리자를 제공합니다."
주로 init 시스템 및 서비스 관리자인 systemd에는 디먼의 주문형 시작, 탑재 및 자동 탑재 지점 유지 관리, 스냅샷 지원 및 Linux 컨트롤 그룹을 사용한 프로세스 추적과 같은 기능이 포함됩니다.
대부분의 주요 Linux 배포판은 이제 systemd가 실행되므로 WSL에서 사용하도록 설정하면 운영 체제 미설치 Linux를 사용하는 데 더 가까운 환경이 제공됩니다. systemd에서 제공하는 항목에 대한 자세한 내용은 아래의 시스템 데모 비디오 공지 또는 systemd 사용 예제를 참조하세요.
WSL 2에서 실행되는 다른 Linux 배포판에 대해 systemd를 사용하도록 설정하려면(기본값을 systemv init 사용에서 변경):
WSL 버전이 0.67.6 이상인지 확인합니다. (확인하려면 wsl --version을(를) 실행합니다. 업데이트하려면 wsl --update을(를) 실행하거나 Microsoft Store에서 최신 버전을 다운로드하세요.)
Linux 배포에 대한 명령줄을 열고 cd /을(를) 입력하여 루트 디렉터리에 액세스한 다음 ls 파일을 나열합니다. 배포에 대한 WSL 구성 파일이 포함된 "etc"라는 디렉터리가 표시됩니다. 다음을 입력하여 Nano 텍스트 편집기를 사용하여 업데이트할 수 있도록 이 파일을 엽니다. nano /etc/wsl.conf
이제 열려 있는 wsl.conf 파일에 다음 줄을 추가하여 systemd에 사용된 init를 변경합니다.
[boot]
systemd=true
Nano 텍스트 편집기를 종료합니다(Ctrl+X, Y를 선택하여 변경 내용 저장). 그런 다음 Linux 배포를 닫아야 합니다. PowerShell에서 wsl.exe --shutdown 명령을 사용하여 모든 WSL 인스턴스를 다시 시작할 수 있습니다.
Linux 배포가 다시 시작되면 systemd가 실행됩니다. Linux 배포와 연결된 모든 서비스의 상태를 표시하는 systemctl list-unit-files --type=service 명령을 사용하여 확인할 수 있습니다.
(배포별) 및 .wslconfig (전역) 구성 파일 간의 wsl.conf 차이점, 자동 탑재 설정을 업데이트하는 방법 등을 포함하여 WSL의 고급 설정 구성에 대해 자세히 알아봅니다.
Systemd 데모 비디오
Microsoft는 Canonical과 협력하여 WSL에 시스템 지원을 제공합니다. Craig Loewen(Microsoft의 WSL PM)과 Oliver Smith(Canonical의 WSL Ubuntu PM)가 시스템 지원을 발표하고 사용하도록 설정하는 몇 가지 데모를 보여 줍니다.
snap: Linux kernel과 systemd init 시스템을 사용하는 운영 체제를 위해 Canonical에서 개발한 소프트웨어 패키징 및 배포 시스템 패키지를 "snaps", snaps를 구축하는 명령줄 도구를 "Snapcraft", snaps를 다운로드/설치할 수 있는 중앙 리포지토리를 "Snap Store", snaps를 실행하는 데 필요한 디먼(스토어에서 다운로드, 제자리에 탑재, 제한 및 앱 밖으로 실행)을 "snapd"라고 합니다. 전체 시스템을 "snappy"라고도 합니다. 다음 명령을 snap install spotify실행해 봅니다.
systemd 지원을 활성화하려면 WSL 아키텍처를 변경해야 합니다. systemd에 PID 1이 필요하므로 Linux 배포 내에서 시작된 WSL init 프로세스는 systemd의 자식 프로세스가 됩니다. WSL init 프로세스는 Linux와 Windows 구성 요소 간의 통신을 위한 인프라를 제공해야 하므로 이 계층 구조를 변경하려면 WSL init 프로세스로 만든 일부 가정을 재고해야 했습니다. 시스템 종료가 systemd에 의해 제어되기 때문에 정상 종료를 보장하고 Linux GUI(그래픽 사용자 인터페이스)를 실행하는 WSL의 구성 요소인 WSLg 또는 명령줄이 아닌 창에 표시되는 Linux 앱과 호환되도록 추가 수정해야 했습니다.
또한 이러한 변경으로 시스템 서비스는 WSL 인스턴스를 활성 상태로 유지하지 않습니다. WSL 인스턴스는 이 업데이트 이전과 동일한 방식으로 활성 상태로 유지되며, 2017년 백그라운드 작업 지원 블로그 게시물에서 자세히 알아보세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
Windows Subsystem for Linux 피드백
Windows Subsystem for Linux은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.
이 모듈에서는 VS Code(Visual Studio Code)와 함께 WSL(Linux용 Windows 하위 시스템)을 사용하는 방법을 알아봅니다. 설치 프로세스와 WSL 사용의 기본 사항을 살펴봅니다. 또한 Visual Studio Code WSL 확장을 설치하고 활용합니다. 마지막으로 WSL 환경 내 VS Code에서 Python 코드를 디버깅하고 실행하는 방법을 보여 줍니다.