cron 으로 GUI 프로그램을 실행시킬 때.

다른 글 말미에 써놓은 내용이긴 한데, 검색이 쉽게끔 따로도 정리한다.


cron 으로 GUI 프로그램을 실행시키면, 실행은 되는 듯 하지만, 정작 화면엔 아무 결과가 나오지 않는다.
GUI 이므로 사용자 crontab 에 등록해야함은 당연하다.
이를 해결하기 위해 검색을 해보니, StackExchange 에 해당 내용이 있었는데..
GUI 이므로, 어느 디스플레이에 표시해야할지를 정해줘야 한다고 한다.
따라서 환경변수 DISPLAY=:0 을 넣어주면 된다.

헌데, 여기서 살짝 또 문제가 생겼다.
내가 실행시킨 프로그램은 kdialog 였는데, 이 중 --textbox 를 줬을 때는 이상없이 잘 진행이 됐지만, 알리미(Notification)를 위해서 –passivepopup 을 넣었을 때는 약간 이상하게 표시가 됐다.

원래는 화면 오른쪽에 이렇게 나와야 정상이다.

그런데 이렇게 화면 왼쪽에 나와버렸다.


살짝 꽃삽질을 한 결과 답을 찾았다. 스크립트에 다음 환경변수를 넣어주면 된다.

export DISPLAY=:0 XDG_RUNTIME_DIR=/run/user/1000

StackExchange 와, 저걸 찾아낸 내 자신에게도 고마움을 전한다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.