私はIris Miniを使って夜にブルーライトをフィルタリングするのにとてもうまくいきますが、手動で行う必要があるのは面倒です。それでcronを使って毎晩8時に始めようとしました。
crontab -e を実行するために作成した内容です。このコマンドは端末で実行すると動作します。
予約されたこと
0 20 * * * sh /home/jogarcia/Software/open-iris-mini.sh
iris-mini.shを開く
#!/bin/bash
export DISPLAY=0:.
/home/jogarcia/Software/iris-mini
xhost +localhost
また、(クローンタブの前に)テストを実行しました。
ログを検索してみると、grep CRON /var/log/syslog
これが実際に実行されたことを示す次の行が見つかりました。
企画日誌
Nov 2 20:00:01 my-computer-is-name CRON[8391]: (user) CMD (sh /home/jogarcia/Software/open-iris-mini.sh)
ところで、画面で結果を見ることができず(オレンジ色で表示する必要があります)、うまくいかず、本当に困惑していて、私が間違っているかどうかはわかりません。
エラーを確認するためにメールサービスをインストールしました。
ローカルメールエラー
QXcbConnection: Could not connect to display 0:.
ベストアンサー1
秘密(@で指摘したとおり)ウォルトナーDISPLAYを正しく設定してください。
おそらくそうです。DISPLAY=:0
形式は通常ホスト名:ディスプレイ番号で、ホスト名はオプションです。
2番目の問題はディスプレイセキュリティです。ルートのcrontabの代わりに自分のcrontabにcronjobを配置する場合はxhost
必要ありませんxauth
。 OPは(おそらく)crontab -e
asを使って自分でこれを正しく行いました。 (セキュリティを確保する$HOME
には、これが正しい必要がありますxauth
。これはあなたのcrontabに入れることの一部です。)
もう一つのヒントは、エラーメッセージを受け取る可能性がある電子メールシステムをインストールすることです。
OPが「cronジョブをディスプレイに接続できません」と報告した場合(電子メールシステムのインストール後)、これはDISPLAYが正しくないか、ディスプレイセキュリティに問題があることを意味する可能性があります(xauth
およびxhost
)。これを行うには、コマンドウィンドウでスクリプトを実行することをお勧めします。次のように実行してみてくださいenv -uDISPLAY /home/jose/Software/open-iris-mini.sh
(ファイルを実行できないと表示された場合は使用してくださいchmod +x
)。
(OPのリクエストに応じて回答が追加されました。)