첫 번째 크론 작업을 만들려고 합니다. 나는 또한 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/python
및 which 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