crontabはいくつかのコマンドのみを実行しますか?

crontabはいくつかのコマンドのみを実行しますか?

私はRaspbianベースのFullPageOSディストリビューションをインストールしたキオスクとして使用するRaspberry Pi 2を持っています。

crontabで実行しようとすると、一部のコマンドが自動的に失敗することを除いて、すべてがうまく機能します。

pi ユーザーが特定の時間にキオスクを開閉する 2 つのコマンドがあります。

$crontab -l -u pi
# m h  dom mon dow   command
05 9 mon-fri * * /bin/bash /home/pi/scripts/dispon.sh >> /tmp/cronjob.log 2>&1
15 18 mon-fri * * /usr/bin/xset -display :0 dpms force off >> /tmp/cronjob.log 2>&1
*/3 * * * * /usr/bin/touch /tmp/1111 >> /tmp/cronjob.log 2>&1

ご覧のとおり、私はモニターを閉じるシーケンスから直接xsetを実行し、モニターを開くときにスクリプトの一部としてxsetを実行するなど、さまざまなアプローチを試しました。

dispon.shスクリプトの内容(chmod a + x):

#!/bin/bash
xset -display :0 dpms force on
xset -display :0 -dpms

どちらのコマンドも機能しないようです(ショーを開いたり閉じたりすることはできません)、/tmp/cronjob.logにエラーメッセージも残しません。

ただし、touchコマンドは機能し、ファイルをタッチします。

xsetSSH接続を介してpiユーザーとして実行すると、両方がうまく機能します。dispon.sh

どんなアイデアがありますか? ?

ベストアンサー1

crontabfileformat() のマニュアルページはman 5 crontab次のように書きます。

月と曜日のフィールドにも名前を使用できます。特定の日付または月の最初の3文字を使用してください(大文字と小文字を区別しない)。名前の範囲またはリストは許可されません。

最後の文章に注目してください。使用できませんmon-fri(しかし使用できません1-5)。

また、正しいフィールドの順序(分、時間、月、月、曜日、コマンド)を示すコメント(最初の行)を見逃しましたが、曜日の値が早すぎます。この修正されたcrontabファイルはあなたに適しています:

SHELL=/bin/bash
PATH=/usr/bin:/bin:/usr/local/bin:/home/pi/scripts

# m h  dom mon dow   command
05 9 * * 1-5     dispon.sh >> /tmp/cronjob.log 2>&1
15 18 * * 1-5    xset -display :0 dpms force off >> /tmp/cronjob.log 2>&1
*/3 * * * *      touch /tmp/1111 >> /tmp/cronjob.log 2>&1

最後に、あなたのアイテムを明示的に無視していることが確認されたら、cron最近のログレポートを検索して何が起こったかを確認できます(存在する場合)。

grep CRON /var/log/syslog

おすすめ記事