我创建了一个带有 cron 作业的 docker 容器,该 cronjob 每分钟运行
php artisan schedule:run
命令,但执行一段时间后该命令返回“Killed”,直到容器重新启动为止一直如此。
我以为是内存问题,所以我把php.ini中Memory_limit的值设置为-1
但是没用...
还有什么可能导致此行为?
进程被终止的原因有很多;如果没有更多信息,就不可能准确找出原因。看看使用“Supervisor”而不是 cron 来管理进程。 “Supervisor”确保命令可靠运行,如果命令被终止则重新启动它,并处理日志记录,这使故障排除变得更容易。
RUN apt update && apt install -y supervisor
COPY ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf
CMD ["/usr/bin/supervisord"]
创建一个名为
supervisord.conf
: 的 Supervisor 配置文件
[supervisord]
nodaemon=true
[program:laravel-scheduler]
command=php /var/www/html/artisan schedule:work --verbose --no-interaction
autostart=true
autorestart=true
user=www-data
stdout_logfile=/var/www/html/storage/logs/scheduler.log