日本の衛星のサーバーから写真をダウンロードし、背景画像として設定する.shスクリプトがあります。スタートアップリストに追加しましたが、5分ごとに自動的に実行するにはどうすればよいですか?
日本の衛星のサーバーから写真をダウンロードし、背景画像として設定する.shスクリプトがあります。スタートアップリストに追加しましたが、5分ごとに自動的に実行するにはどうすればよいですか?
回答:
場合は、あなたが簡単な方法をしたい、とされないようにセットされた環境変数を調べるには:
スタートアップアプリケーションに次を追加します。
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"ダッシュ>スタートアップアプリケーション>追加。コマンドを追加します。
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"独自の環境(たとえば、ターミナルウィンドウまたはスタートアップアプリケーション)からスクリプトを実行すると、多くの環境変数が設定されます。cronただし、限られた環境変数セットでスクリプトを実行します。
あなたのスクリプトは間違いなくgsettingsコマンドを使用しているので:
gsettings get org.gnome.desktop.background picture-uri <wallpaper>壁紙を設定するには、ほぼ確実にから実行するとコマンドが中断しますcron。
「怠zyな解決策」の欠点は純粋に理論的なものです。実質的に継続的にスリープするコマンドは、システムにとって何の意味もありません。
この投稿を読んで、過去の経験から、DBUS_SESSION_BUS_ADDRESS環境変数を設定する必要があると確信しています。
これを行うには、スクリプトの先頭に次のセクションを追加します(シバンの下)。
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
その後、から正常に実行できるはずですcron。
ただし、ハッスルを非常にうまく保存し、遅延オプションを選択できます。
cpu 0.0%私たちは何税について話しているのですか?
                    に入れてくださいcrontab。
次の方法でcronテーブルを開きます。
crontab -e追加します:
*/5 * * * * /path/to/script.sh事前にスクリプトを実行可能にすることを忘れないでください。
スクリプトはXに依存しているため、おそらくDISPLAYスクリプトの環境に追加することをお勧めします。
*/5 * * * * DISPLAY=:0 /path/to/script.sh:0実際のものに置き換えますDISPLAY(echo $DISPLAY対話型セッションから見つけることができます)。
必要に応じて、XAUTHORITY環境変数も追加できます。
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh繰り返しますが、値はで見つけることができますecho $XAUTHORITY。