Home

오늘의 기억

[WSL] 윈도우 부팅시 WSL의 서비스 자동 시작


Windows 10의 WSL 기능을 이용해 Ubuntu를 설치 후, MySQL, SSH 같은 서비스를 설치해서 사용 중이였다.

그러나 Ubuntu에 시작 서비스로 등록을 해놔도 Windows 부팅시에는 적용이 안되었다.

그래서 여러가지 시도 끝에 해당 문제를 해결한 방법에 대해 공유한다.


1. visudo 로 sudo 권한 부여

먼저 WSL 처음 설치시 지정한 기본 계정이 존재한다. 해당 계정을 visudo 로 root 비밀번호 없이 sudo 를 수행할 수 있는 권한을 부여한다.

# visudo

visudo 접속 후 맨 밑에다가 아래 항목을 추가한다.

계정명 ALL=(ALL:ALL) NOPASSWD:ALL

계정명 부분에다 기본 계정명을 입력하고, sudo 로 수행하는 모든 명령을 비밀번호 없이 수행한다는 것을 추가한 것이다.

저장할 떄는 Ctrl + X 누른 뒤, Y 로 넘어가고, 파일명을 .tmp 를 지운 /etc/sudoers 로 변경한다.

그럼 bash의 기본 계정으로 sudo 를 수행할 때 비밀번호가 필요없어진다.


2. Windows 배치 파일 생성

아래 처럼 bash의 서비스를 실행하는 Windows 배치 파일을 만들 수 있다.

C:\Windows\System32\bash.exe -c "sudo service ssh start"
C:\Windows\System32\bash.exe -c "sudo service mysql start"

Windows 부팅시 실행 할 서비스를 start 하는 명령어를 차례로 입력한 뒤 해당 파일을 service.bat 파일로 만든다.

그리고 %AppData%\Microsoft\Windows\Start Menu\Programs\Startup 디렉토리에 복사를 한다.


3. 재부팅시 서비스 시작

그럼 재부팅시에 해당 배치 파일이 실행되면서 서비스가 하나하나 실행된다.

20180807 Charyum.Park