![어떤 WINEPREFIX가 사용되고 있는지 확인하는 방법](https://linux55.com/image/95153/%EC%96%B4%EB%96%A4%20WINEPREFIX%EA%B0%80%20%EC%82%AC%EC%9A%A9%EB%90%98%EA%B3%A0%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
실행할 때 현재 활성화된 wineprefix를 확인하는 데 사용할 수 있는 명령이 있습니까 wine
?
답변1
Windows 환경 "내부"에서 환경 변수를 읽을 수 있습니다 WINEPREFIX
. 다음과 같은 방법으로 이 작업을 수행할 수 있습니다 cmd
.
$ WINEPREFIX=/home/lesmana/tmp/somewineprefix wine cmd
(bunch of wine output)
Z:\home\lesmana> echo %WINEPREFIX%
/home/lesmana/tmp/somewineprefix
cmd
명령을 사용하여 다른 환경 변수를 확인할 수 있습니다 set
.
와인을 시작하지 않으면 변수 세트 WINEPREFIX
가 없습니다 . WINEPREFIX
이 경우 wineprefix가 기본값( $HOME/.wine
)이어야 합니다.
나는 와인 환경 "외부"에서 wineprefix를 얻는 쉽고 공식적인 방법을 찾지 못했습니다. 해킹은 다음과 같습니다.
먼저 wineserver 프로세스의 PID가 필요합니다.
$ pgrep -fl wineserver
5197 wineserver
그런 다음 프로세스의 환경 변수를 볼 수 있습니다.
$ cat /proc/5197/environ | tr '\0' '\n' | grep -i wine
WINEDLLOVERRIDES=winemenubuilder.exe=d;
WINEPREFIX=/home/lesmana/tmp/somewineprefix
_=/usr/bin/wine
WINELOADERNOEXEC=1
다시 말하지만, 와인 없이 와인을 시작한다면 WINEPREFIX
아무런 변수도 없을 것입니다 WINEPREFIX
.
또는 프로세스의 파일 설명자를 확인할 수 있습니다.
$ ls -l /proc/5197/fd | grep wine
lr-x------ 1 lesmana users 64 25. Sep 15:27 114 -> /home/lesmana/tmp/somewineprefix/drive_c/windows
lr-x------ 1 lesmana users 64 25. Sep 15:27 32 -> /home/lesmana/tmp/somewineprefix/drive_c/windows
lr-x------ 1 lesmana users 64 25. Sep 15:27 4 -> /home/lesmana/tmp/somewineprefix
lr-x------ 1 lesmana users 64 25. Sep 15:27 48 -> /home/lesmana/tmp/somewineprefix/drive_c/windows/system32
lr-x------ 1 lesmana users 64 25. Sep 15:27 5 -> /tmp/.wine-1000/server-802-2e0ac4 (deleted)
l-wx------ 1 lesmana users 64 25. Sep 15:27 6 -> /tmp/.wine-1000/server-802-2e0ac4/lock (deleted)
문제가 있습니다. 여러 wineserver 프로세스가 있는 경우 어떤 wineserver가 어떤 wine 프로세스에 속하는지 알아내야 합니다. 다시 한번 나는 이러한 상관 관계를 만드는 쉬운 방법이 없다는 것을 발견했습니다. 내가 찾은 유일한 방법은 프로세스의 타임스탬프를 확인하는 것입니다.
$ ps -ef
...
lesmana 5096 5085 0 22:33 pts/2 00:00:00 /bin/sh /home/lesmana/bin/wine cmd
lesmana 5097 5096 0 22:33 pts/2 00:00:00 cmd
lesmana 5100 614 0 22:33 ? 00:00:02 /usr/bin/wineserver
lesmana 5104 614 0 22:33 ? 00:00:00 C:\windows\system32\services.exe
lesmana 5110 614 0 22:33 ? 00:00:00 C:\windows\system32\explorer.exe /desktop
lesmana 5144 614 0 22:33 ? 00:00:03 C:\windows\system32\winedevice.exe
lesmana 5193 5093 0 22:34 pts/3 00:00:00 /bin/sh /home/lesmana/bin/wine cmd
lesmana 5194 5193 0 22:34 pts/3 00:00:00 cmd
lesmana 5197 614 0 22:34 ? 00:00:06 /usr/bin/wineserver
lesmana 5201 614 0 22:34 ? 00:00:00 C:\windows\system32\services.exe
lesmana 5207 614 0 22:34 ? 00:00:00 C:\windows\system32\explorer.exe /desktop
lesmana 5345 614 0 22:34 ? 00:00:03 C:\windows\system32\winedevice.exe
...
두 개의 와인 프로세스와 두 개의 와인 서버 프로세스가 있으며 시작 간격은 1분입니다. 원하는 경우 ps
시간을 초 단위로 보고할 수 있습니다.
불행하게도 wineserver 프로세스는 wine 프로세스의 하위 프로세스가 아닌 일종의 데몬으로 시작됩니다. PPID에는 행운이 없습니다.