一部のジョブに対してシングルインスタンスクローンジョブを実行しています。私のスクリプトは次のとおりです
# every hour interval
0 * * * * php /project/yii daily/order
# every 30 minutes interval
*/30 * * * * php /project/yii daily/sample
https://crontab.guru/
値を取得するために使用します。スケジュールは機能しますが、その場合はorder
毎時間実行するように設定しましたが、代わりに5時間ごとに実行されます。パスとスクリプトを確認してみてください。
なぜ設定どおりに毎時間実行されないのか疑問に思います。
答え1
実行中のジョブは、cron
デスクトップと同じランタイム環境では実行されません。変更やその他の環境変数の設定は、ジョブに自動的に伝播されPATH
ません。たとえば、noなので、GUIプログラムには特別な処理(読み取り)が必要です。~/.bashrc
cron
$DISPLAY
man xhost
cron
環境変数は、すべてのジョブの読み取りファイルで設定できます。crontab
man 5 crontab
echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
各環境の結果を確認してください。
その行はデフォルトで解釈されるため、構文はcommand
それよりも単純なので、環境を設定した後に必要なプログラムを呼び出すスクリプト(実行可能、インストール、開始)を呼び出すことをお勧めします。crontab
/bin/sh
/bin/bash
command
bash
#!/bin/bash