日本の衛星のサーバーから写真をダウンロードし、背景画像として設定する.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
。