inotifywait가 xfce4 구성 파일에서 행 변경 사항을 감지하지 못했습니다.

inotifywait가 xfce4 구성 파일에서 행 변경 사항을 감지하지 못했습니다.

제가 겪고 있는 문제는 VMWare Workstation의 Debian VM이 전체 화면 모드로 들어갈 때마다 해상도를 1280x1392 픽셀로 변경한다는 것입니다.

이제 전체 화면 모드를 종료하고 들어갈 때마다 수동으로 해상도를 2560x1440px로 변경할 수 있지만 자동화하는 것을 선호합니다.

먼저 수동 저장소 구성의 .config/xfce4/xfconf/xfce-perchannel-xml/displays.xml 파일을 수정해 보았으나 변경 사항이 적용되지 않았습니다. xfconf-query 명령을 사용하여 해상도 값을 설정하면 이러한 변경 사항이 적용되지 않습니다.

명령줄에서 해상도를 설정할 수 있는 것은 xrandr입니다.

xrandr --output Virtual1 --mode 2560x1440

이제 inotifywait를 사용하여 display.xml의 변경 사항을 모니터링하는 스크립트를 설정하려고 합니다.

그런데 문제는 파일의 변경사항을 인식하지 못하는 것 같습니다...

명령줄에서 다음을 실행했습니다(변경 사항을 확인했는지 테스트하기 위해).

while inotifywait -m -e modify /home/myhomesir/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml; do whoami ;done

md5sum display.xml그런 다음 설정 파일의 현재 md5sum을 가져오기 위해 실행하고 전체 화면으로 종료한 다음 md5sum display.xml다시 실행하여 파일이 변경되었는지 확인했습니다.

md5sum displays.xml
001c0796aba8c0e8b4ea28d59f2e5edc  displays.xml

md5sum displays.xml
322e7ea6ca9914caba6fa1365244b27a  displays.xml

inotifywait 명령의 출력을 확인하면 어떤 출력도 얻지 못합니다.

while inotifywait -m -e delete /home/myhomedir/.config/xfce4/xfconf/xfce-perchannel-xml/; do whoami;done                                        
Setting up watches.
Watches established.

왜 이런 일이 발생하고 변경 사항을 인식하지 못했는지 알고 계십니까? 내가 관찰한 바에 따르면 두 줄이 바뀌었습니다.

diff displays.xml_wrong displays.xml_correct                                                                                                                                                                                                                                                                            
9,10c9,10                                                                                                                                                                                                                                                                                                                   
<       <property name="Resolution" type="string" value="1280x1392"/>
<       <property name="RefreshRate" type="double" value="59.998367391363502"/> 
---
>       <property name="Resolution" type="string" value="2560x1440"/>
>       <property name="RefreshRate" type="double" value="59.950550105254798"/> 

어떤 도움이라도 기다리겠습니다. 다른 제안사항이 있으면 알려주시기 바랍니다. 감사합니다!

답변1

해결책을 찾은 것 같습니다. 생성 및 이동 이벤트를 모니터링한 후 xfce4가 먼저 새 파일인display.xml.new를 만든 다음 파일에 직접 쓰는 대신display.xml로 이동하는 것 같습니다.

관련 정보