前提・実現したいこと
cronでGUIアプリを起動させたい。
発生している問題・エラーメッセージ
環境:CentOS Linux release 8.3.2011
端末からの実行では正常に起動するスクリプトをcronで実行すると起動しません。
ログを確認すると
Unable to initialize GTK+, is DISPLAY set properly? と記録されていました。
該当のソースコード
/root/mywork/test.sh
#!/usr/bin/bash /opt/FreeFileSync/FreeFileSync /root/ドキュメント/gijyutsu.ffs_batch
上記スクリプトを端末から実行すると正常にアプリのウインドウが表示起動したのでこれを
cronでスケジュール起動させようとしました。
/etc/crontab を /etc/cron.d/test_cron にコピーしてtest_cronに以下のように記述しました。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 59 21 * * * root /root/mywork/test.sh >> /tmp/result.log 2>&1
時間になっても何も起動しないので、ログを確認したところ
Unable to initialize GTK+, is DISPLAY set properly? と表示されていました。
画面表示するアプリを起動させるにはどのようにすれば良いのでしょうか?
試したこと
ネット検索していたところ、DISPLAY=:0 とか DISPLAY=:0.0 または
export DISPLAY=:0 という例もありましたので試してみましたが起動しませんでした。
50 13 * * * root DISPLAY=:0 /root/mywork/test.sh >> /tmp/result.log 2>&1
または
53 13 * * * root DISPLAY=:0.0 /root/mywork/test.sh >> /tmp/result.log 2>&1
の結果 /var/log/cronには
CROND[224497]: (root) CMD (DISPLAY=:0.0 /root/mywork/test.sh >> /tmp/result.log 2>&1
result.logには
No protocol specified
13:53:01: Error: Unable to initialize GTK+, is DISPLAY set properly?
となりました。
また
57 13 * * * root export DISPLAY=:0 /root/mywork/test.sh >> /tmp/result.log 2>&1
にすると/var/log/cronには
CROND[224593]: (root) CMD (export DISPLAY=:0 /root/mywork/test.sh >> /tmp/result.log 2>&1)
result.logには
/bin/bash: 0 行: export: `/root/mywork/test.sh': 有効な識別子ではありません
となりました
回答1件
あなたの回答
tips
プレビュー