需实时确认麒麟系统中正在执行的定时任务,先运行systemctl is-active crond验证守护进程是否活跃;再用ps --ppid $(pgrep crond) -o pid,ppid,cmd --forest列出所有由crond派生的运行中任务进程;同时执行systemctl list-timers --all检查systemd timers的running/waiting状态及下次触发时间。

你需要在麒麟系统中实时确认哪些定时任务正处于活跃执行状态,而不是仅查看配置列表,避免误判任务是否真正生效或正在阻塞运行。
检查 cron 守护进程是否运行
所有用户级和 /etc/crontab 任务都依赖 crond 进程驱动,若它未启动,任何定时任务都不会触发。
执行:systemctl is-active crond
若输出 active,说明守护进程正常运行;若输出 inactive 或报错 Unit crond.service could not be found,则需先安装 cronie 包或启用服务。注意:部分精简版麒麟镜像默认未安装 cronie,此时 crontab -e 命令虽可用,但实际不会调度。
查看当前正在执行的 cron 任务进程
crond 本身不提供“正在运行中”的任务快照,但可通过进程树反向定位——真正被 cron fork 出来、尚未结束的子进程,就是此刻正在执行的任务实例。
执行:ps aux | grep 'CROND\|cron' | grep -v grep
重点关注 CMD 列含 CROND 的行,其后跟随的 PID 是 cron 主进程;再执行:ps --ppid $(pgrep CROND) -o pid,ppid,cmd --forest
这会列出所有以 CROND 为父进程的子进程,每一行代表一个正在运行的具体任务命令。例如看到 /bin/sh -c /usr/local/bin/backup.sh,说明该备份脚本当前正在执行中。
【关键提醒】 若某任务定义为每分钟执行一次(* * * * *),但你在此处始终看不到它的进程,大概率是脚本秒级退出或已崩溃——需结合 journalctl -u crond -n 50 --no-pager 查看最近失败日志。
列出所有已启用的 systemd timer 并观察其下次触发与状态
systemd timers 是麒麟 V10/V11 中与传统 cron 并存的另一套定时机制,常用于系统服务(如 apt-daily.timer、fstrim.timer),它们的状态必须单独检查。
第一步:执行 systemctl list-timers --all
第二步:关注 STATUS 列为 running 或 waiting 的 timer,同时留意 NEXT 列时间是否合理(如显示 n/a 表示已禁用或上一次执行失败后被暂停)。
第三步:对可疑 timer 执行 systemctl status xxx.timer(例如 systemctl status logrotate.timer),重点查看 TriggeredBy: 行指向的对应 .service 单元是否也处于 active 状态。
若某 timer 显示 next: n/a 且 LOAD 状态为 loaded,说明它已被启用但尚未触发过首次运行,需手动执行 sudo systemctl start xxx.timer 激活。











