5分ごとに.shを実行する


12

日本の衛星のサーバーから写真をダウンロードし、背景画像として設定する.shスクリプトがあります。スタートアップリストに追加しましたが、5分ごとに自動的に実行するにはどうすればよいですか?


1
あなたはそこにcron式を作るとのcrontab -eでそれを置くことができ、cronmaker.comを試してみてください
私たちは、ボルグある

2
画像は5分ごとに変化しますか?ターゲットサーバーに不必要な負荷が少ない間隔を使用してみてください。または、ファイルが実際に変更された場合にのみダウンロードするようにしてください。
til_b

1
ちなみに、スペースの背景のURLは何ですか?
bohdan_trotsenko

回答:


14

遅延オプション

場合は、あなたが簡単な方法をしたい、とされないようにセットされた環境変数を調べるには:

  • スクリプトにシバンが含まれていることを確認してください
  • 実行可能にする
  • スタートアップアプリケーションに次を追加します。

    /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

ただし、ハッスルを非常にうまく保存し、遅延オプションを選択できます。


@AleksanderMahnyovどういたしまして。喜んで機能します:)
ジェイコブヴリム

2
cronジョブを使用する方がはるかに優れています。
ルカラミシュヴィリ

1
@LukaRamishviliコメントありがとうございます。ただし:a。なんで?スリープコマンドは、システムにとって何の意味もありません。b。オプションも含めました。
ジェイコブVlijm

1
それ以外の場合、gnomeセッション変数に関する素晴らしい調査は、OPが多くの場合に役立つでしょう。
ルカラミシュヴィリ

2
私はちょうど見た:cpu 0.0%私たちは何税について話しているのですか?
ジェイコブVlijm

24

に入れてくださいcrontab

次の方法でcronテーブルを開きます。

crontab -e

追加します:

*/5 * * * * /path/to/script.sh

事前にスクリプトを実行可能にすることを忘れないでください。


スクリプトはXに依存しているため、おそらくDISPLAYスクリプトの環境に追加することをお勧めします。

*/5 * * * * DISPLAY=:0 /path/to/script.sh

:0実際のものに置き換えますDISPLAYecho $DISPLAY対話型セッションから見つけることができます)。

必要に応じて、XAUTHORITY環境変数も追加できます。

*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh

繰り返しますが、値はで見つけることができますecho $XAUTHORITY


1
cronの限られた環境変数で動作するかどうかはわかりませんが、OPが動作を示しているかどうかを確認しましょう:)
ジェイコブVlijm

1
@AleksanderMahnyovしてください編集 contents..possibly見ずに言うのは難しいスクリプトを追加するには、あなたの質問を、DISPLAY(および/またはXAUTHORITY)問題を...
heemayl

1
@Kartagis Cronは秒を処理できません。また、まだ構文的に間違っている時間を処理しようとしています
。.-heemayl

2
私はcronを知っていたので、「怠becauseな方法」よりもこの方法が好きでしたが、ちょっとした復習コースが必要でした。これはまさに私がやったことです、ありがとう!:)
ZaxLofful

2
受け入れられている答えよりも優れたアプローチ。:)
サンディープクマール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.