最初のクローンジョブを作成しようとしています。私も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