Cronjob은 `/usr/bin/python`을 실행하지만 `usr/bin/xrdb`는 실행하지 않습니다.

Cronjob은 `/usr/bin/python`을 실행하지만 `usr/bin/xrdb`는 실행하지 않습니다.

첫 번째 크론 작업을 만들려고 합니다. 나는 또한 Python을 알고 있지만 bash 스크립팅을 처음 접했습니다. 나는 다음 질문에 대해 혼란스러워합니다.

이것은 다음을 사용하여 만든 cronjob 파일입니다 crontab -e.

*/1 * * * * /home/darren/.bash_scripts/urxvt_colors.sh

콘텐츠 urxvt_colors.sh:

#!/bin/bash

python  ~/.Py_Scripts/xr_random_colors.py
xrdb ~/.Xresources

이것이 나를 혼란스럽게 만드는 것입니다. 따라서 cron 작업의 Python 부분은 python ~/.Py_Scripts/xr_random_colors.py매분 실행됩니다. 이 Python 스크립트는 내 파일의 색 구성표를 변경합니다 ~/.Xresources. 매 순간 확인하면서 실제로 이런 일이 일어나고 있음을 확인했습니다. 그러나 xrdb ~/.Xresources파일은 업데이트되지 않습니다.

which python프로그램 /usr/bin/pythonwhich xrdb공연 운영 /usr/bin/xrdb. 그렇다면 모두 서버에서 실행되는데 /usr/bin왜 Python 스크립트만 실행됩니까?

또한 ./urxvt_colors.sh터미널에서 스크립트를 수동으로 실행하면 예상대로 작동하고 Python 스크립트도 실행됩니다.xrdb ~/.Xresources

여기서 무슨 일이 일어나고 있는 걸까요?

답변1

스크립트를 이렇게 바꿔보세요

#!/bin/bash

python  ~/.Py_Scripts/xr_random_colors.py && xrdb ~/.Xresources

파일의 전체 경로를 사용하는 것이 좋습니다.

PS 어쩌면 스크립트를 실행할 때 DISPLAY 변수를 정의해야 할 수도 있습니다.

*/1 * * * * DISPLAY=:0 /home/darren/.bash_scripts/urxvt_colors.sh

관련 정보