У меня есть проект Laravel 5.7 , работающий на CentOS.В проекте запланировано одно задание:
$schedule->command('import:producers --create --update --afterOrEqual="-5 minutes"')
->everyFiveMinutes()
->appendOutputTo(
storage_path('logs/schedule/producers_import.log')
);
Согласно последнему журналу внутри logs/schedule/producers_import.log
, оно работало идеально до 2019-05-30 , когда сервер по какой-либо причине был перезапущен.
Теперь запланированное задание не запускается «автоматически» заданием cron, но если я cd
до my-project
и запускается вручную в нужное время:
$ php artisan schedule:run
Running scheduled command: '/usr/bin/php' 'artisan' import:producers --create --update --afterOrEqual="-5 minutes" >> '/var/www/my-project/storage/logs/schedule/producers_import.log' 2>&1
Приведенная выше команда создаетновый вход в систему logs/schedule/producers_import.log
.
Это странно для меня, поскольку в журнале cron показывается, что планировщик вызывается каждую минуту, как и ожидалось:
$ cat /var/log/cron
...
Jun 19 08:57:01 my-server-name CROND[29679]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 08:58:01 my-server-name CROND[29724]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 08:59:01 my-server-name CROND[29739]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 09:00:01 my-server-name CROND[29754]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jun 19 09:00:01 my-server-name CROND[29755]: (root) CMD (/bin/bash /etc/SomeOtherScript.sh)
Jun 19 09:00:01 my-server-name CROND[29756]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 09:00:32 my-server-name crontab[29784]: (admin) LIST (admin)
Jun 19 09:01:01 my-server-name CROND[29787]: (root) CMD (run-parts /etc/cron.hourly)
Jun 19 09:01:01 my-server-name CROND[29788]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 09:01:01 my-server-name run-parts(/etc/cron.hourly)[29787]: starting 0anacron
Jun 19 09:01:01 my-server-name run-parts(/etc/cron.hourly)[29798]: finished 0anacron
Jun 19 09:02:01 my-server-name CROND[29813]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Jun 19 09:03:01 my-server-name CROND[29836]: (admin) CMD (php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1)
Задача Laravel никогда не вызывается, потому что она не создает никакого входа в logs/schedule/producers_import.log
, а база данных никогда не изменялась с помощью побочных эффектов команды.
(активная) служба cron с 2019-05-30 :
$ systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-05-30 17:28:05 -04; 2 weeks 5 days ago
Main PID: 27650 (crond)
CGroup: /system.slice/crond.service
└─27650 /usr/sbin/crond -n
Jun 18 11:26:38 my-server-name systemd[1]: Started Command Scheduler.
Jun 18 11:26:38 my-server-name crond[27650]: (CRON) INFO (RANDOM_DELAY will be scaled with f...d.)
Jun 18 11:26:38 my-server-name crond[27650]: (CRON) INFO (running with inotify support)
Jun 18 11:26:38 my-server-name crond[27650]: (CRON) INFO (@reboot jobs will be run at comput...p.)
Hint: Some lines were ellipsized, use -l to show in full.
Записи cron:
$ crontab -l
* * * * * php /var/www/my-project/artisan schedule:run >> /dev/null 2>&1
Честно говоря, я не знаю, как поступить.Есть какая-то другая служба для проверки состояния?
Как лучше отслеживать задания cron, чтобы выяснить, почему она не вызывает задачу Laravel после 2019-05-30 ?