(나는 이것이 실제로 MS-Windows에 대한 질문이라고 생각하지만 다른 SO 사이트보다 여기에서 합리적인 답변을 얻을 가능성이 더 높다고 생각합니다.)
WSL(Ubuntu를 실행 중)에서 MS-Windows 실행 파일을 실행하면 $!가 표시됩니다( ps
등에서 볼 수 있음). 하지만:
- 이 PID는 MS-Windows 프로세스가 끝난 후에도 지속됩니다(Linux 호스트에서 PID를 제거하는 유일한 방법은 kill -KILL입니다).
- Linux에서 PID를 종료해도 MS-Windows 프로세스 실행에는 영향을 미치지 않습니다.
SSH 터널을 시작한 다음 해당 터널을 사용하는 MS-Windows 실행 파일을 시작하는 스크립트를 작성 중입니다. MS-Windows 프로세스가 아직 실행 중인지 확인할 수 있고 Linux 스크립트에서 Windows 프로세스를 종료할 수 있다면 상당한 이점이 있을 것입니다.
어떻게 해야 하나요?
답변1
이렇게 하려면 Windows 도구를 사용해야 합니다. 하지만 좋은 소식은 전화를 걸 수 있다는 것입니다 wsl
:)
.$PATH
.exe
notepad.exe
이름이 지정된 프로세스를 확인하려면 다음을 수행하세요 bash
.
if tasklist.exe | grep notepad.exe > /dev/null ; then echo "notepad running"; fi
그리고 그것을 죽여라:
taskkill.exe /F /IM notepad.exe
이는 해당 이름으로 실행되는 프로세스의 인스턴스가 하나만 있다고 가정합니다. 보다 세부적인 정보가 필요한 경우 tasklist.exe
출력을 구문 분석하여 실제 Windows PID와 같은 정보를 얻어야 합니다.