重置“at”命令计数器

重置“at”命令计数器

有人能帮我重置“at”命令计数器吗?假设我有 1000 个“at”作业,那么我需要重置“at”命令计数器,以便它回到零,并且不会增加到很高的数字?

答案1

at 计数器为十六进制,计数 5 位数字,因此最大计数为 1048574 (ffffe)。达到最大计数后,计数器自动重置为 0。

您可以通过将文件更改为 00000 来手动重置计数器/var/spool/at/.SEQ。但如果您确实想手动重置计数器,我建议您在执行此操作之前删除队列中所有待处理的作业。

答案2

您可以使用以下命令检查当前计数器:

echo "ibase=16; $(cat /var/spool/cron/atjobs/.SEQ | tr '[:lower:]' '[:upper:]')" | bc

要重置它,只需将十六进制值更改为零并重新启动at守护进程:

printf '%04x' 0 > /var/spool/cron/atjobs/.SEQ
systemctl restart atd

相关内容