You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器中让schedule:run与systemd协同工作?

给Lumen配置Systemd定时任务(Ubuntu Xenial Docker环境)

最近我在基于ubuntu:xenial的Docker镜像中搭建Lumen的定时任务体系,用systemd的service和timer单元来实现自动调度,以下是我的具体配置:

1. 编写Service单元文件

路径:/etc/systemd/system/lumen-cron.service
这个文件负责定义执行Lumen定时任务的具体命令和运行权限:

[Unit]
Description=Run lumen cron tasks
After=network.target

[Service]
User=root
ExecStart=/usr/bin/php /var/www/web/artisan schedule:run

2. 编写Timer单元文件

路径:/etc/systemd/system/lumen-cron.timer
这个文件用来设置任务的调度规则,我配置成启动后1分钟开始执行,之后每隔1分钟运行一次:

[Unit]
Description=Run lumen timed tasks

[Timer]
OnBootSec=1min
OnUnitActiveSec=1m

[Install]
WantedBy=timers.target

3. 配置容器启动自动启用

在Docker镜像的启动脚本里,我加入了启用该定时任务的命令,确保容器启动后定时任务自动生效:

systemctl enable lumen-cron

容器内验证任务状态的常用命令

如果登录容器后想确认任务是否正常运行,可以用这些命令:

  • 查看timer的调度状态:systemctl list-timers lumen-cron.timer
  • 查看service的运行日志:journalctl -u lumen-cron.service
  • 手动触发一次任务测试:systemctl start lumen-cron.service

内容的提问来源于stack exchange,提问作者Moak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:23