web-dev-qa-db-ja.com

Cronは動作しますが、chromeでWebページを開くスケジュールジョブは動作しません

更新START

  1. 私の友人がこれに答えました。私はこれを行う必要がありますexport DISPLAY=:0 && <my GUI dependent command here>彼がここに答えを投稿するのを待っています。
  2. /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &なしで&も試しました。それでも失敗します。コマンドラインで直接成功します。
  3. 私のマシンには/var/log/cronファイルがありません。補助的な質問:どうすれば入手できますか?

更新END

1日に複数回定期的に更新する必要があるGoogleドキュメントがあります。特定の更新を形成するコンテンツは、プログラムで予測または決定することはできません。ですから、私が持っている最良の解決策は、特定のGoogle Docページを一定の間隔で自動的に開き、それから手動でデータを追加することです。

現在、問題は、コマンドラインで直接機能するものがcrontabで使用されると機能しないことです。以下は私が試したものです(テストのためだけに2分間隔を使用)-

*/2 * * * * date >> /tmp/crontest
*/2 * * * * /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
  1. cat /tmp/crontestの場合、2分ごとにタイムスタンプが追加されます
  2. シェルで/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URLを試すと、期待どおりに動作します
  3. しかし、PARTICULAR_GOOGLE_DOC_URLは、私のchromeで2分ごとに開かれるべきではありません。 (再び:私はテストのために2分間隔を使用しています)

何が間違っていますか?どうすれば修正できますか?必要なことを達成するための代替方法はありますか?

前もって感謝します。

6
Sumeet Pareek

export DISPLAYラッパーを使用してcrontabを編集します。

2 * * * * export DISPLAY=:0 && firefox %u

これにより、空のFirefoxタブが開き、お気に入りのURLを使用できます。

8
Vishal Vashista

cronはコマンドラインジョブを対象としており、 非常に限られた環境変数のセット -just HOMELOGNAMEPATH、およびShell

少なくとも、chromeにはDISPLAYを設定する必要があります。また、他の変数(たとえば、DBUS関連の変数)がないと不幸になることもあります。ターミナルでenvを実行して、現在の環境を確認します。

4
chronitis

Cronjobで得られる環境は非常に限られています。たとえば、クロムを開くために必要なDISPLAY変数を取得できません。

コマンドをスクリプトでラップする

#!/bin/sh
export DISPLAY=:0
/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL

動作させるためにさらに変数が必要かどうかは確かではありません。 cronで機能するkonsole(KDEのターミナル)を起動する同様のスクリプトを作成しました。

3
McNisse