首页/系统/Linux 运维命令速查/cron 服务名差异与重启
定时任务与计划50 条

cron 服务名差异与重启

RHEL 系服务名 crond(cronie 包)、Debian/Ubuntu 是 cron;systemctl 统一管,但日志、配置细节不同,脚本里要写兼容判断。

Linux 运维命令速查系统更新于 2026-10-13

两系 cron 服务名不同

cron 守护进程的单元名在各发行版不一致:RHEL/CentOS/Rocky/Alma 上是 crond(cronie 包),Debian/Ubuntu 上是 cron(vixie-cron 血统)。功能都是分钟级调度,差异主要在软件包名、日志去向与容器里的运行方式。写跨发行版脚本时如果硬编码服务名,在另一系会直接 not found,任务部署静默失败。

基本信息

适用平台RHEL 系与 Debian 系
服务单元名RHEL:crond;Debian/Ubuntu:cron
软件包RHEL:cronie;Debian:cron
日志RHEL:/var/log/cron;Debian:/var/log/syslog(grep CRON)
任务位置/etc/crontab、/etc/cron.d/、/etc/cron.{hourly,daily,weekly,monthly}/

典型使用场景

  • 编写兼容两系的部署脚本:重启、开机自启、状态断言都要做兼容判断
  • 排查“任务没跑”:先确认服务在运行,再在日志里找执行记录
  • 容器或精简镜像里确认 cron 是否安装、是否以前台方式运行
  • 系统迁移(CentOS 到 Rocky、或迁到 Ubuntu)后核对服务名与日志路径
  • 变更前后留存服务状态与执行日志作为取证材料

启停与状态

启停与状态
systemctl status cron --no-pager || systemctl status crond --no-pager   # 兼容查询两系
sudo systemctl restart cron 2>/dev/null || sudo systemctl restart crond # 兼容重启
sudo systemctl enable --now cron 2>/dev/null || sudo systemctl enable --now crond
systemctl is-active cron 2>/dev/null || systemctl is-active crond       # 脚本里的断言写法
crontab -l                              # 当前用户任务;crontab -e 编辑
tail -n 50 /var/log/cron                # RHEL 系执行日志
grep CRON /var/log/syslog | tail -n 50  # Debian 系执行日志

两系对照

项目RHEL/CentOS/RockyDebian/Ubuntu
服务单元名crondcron
软件包名croniecron
执行日志/var/log/cron/var/log/syslog(grep CRON)
改 crontab 是否要重启不需要,守护每分钟重读同样不需要
容器常见做法cron -f 前台运行cron -f 前台运行
修改 crontab 或 /etc/cron.d 下的文件不需要重启服务:守护进程每分钟重新读取任务表;重启只在服务异常、单元文件被改坏或需要重载环境时才有必要。
Debian 系的 cron 日志走 syslog,journalctl -u cron 往往看不到完整执行记录,排查时要 grep /var/log/syslog;RHEL 系相反,直接看 /var/log/cron 最直接。
cron 的最小粒度是分钟,也不提供补跑:关机期间的时点直接跳过。需要补跑用 anacron 或 systemd timer 的 Persistent,需要秒级调度则要另选调度器。
任务输出默认通过邮件发给任务属主,机器没配 MTA 时日志里会堆满退信记录:常规做法是把输出重定向到文件,或把 MAILTO 变量设为空关闭邮件。
排查任务不执行的标准顺序:先确认服务在运行,再确认 crontab 语法与执行用户,然后确认脚本用绝对路径且环境变量齐全,最后在日志里找是否出现过执行记录;这条链路走完基本能定位绝大多数“没跑”的问题。

易错点

  • 脚本里硬编码 crond:在 Debian/Ubuntu 上 not found,部署失败却容易当成任务本身有问题
  • 为了“让 crontab 生效”而重启服务:既没必要,还可能中断正在执行的任务
  • 只看进程在不在、不看日志:命令路径错误、权限不足、环境变量缺失都不会反映在服务状态里
  • 容器里以前台方式跑 cron 又没有日志转发:任务失败完全无痕,问题要延后很久才暴露

数据来源与参考

  • cronie 项目文档
  • Debian cron 手册页
  • RHEL 9 文档:cron 服务管理

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌