退出at
命令的交互模式
当输入at [时间]
进入交互式界面(显示at>
提示符)后,需区分两种情况:
-
保存任务并退出
- 输入完所有要执行的命令后,按
Ctrl + D
(即EOF
信号)。 - 系统会显示
job X at [时间]
,表示任务已安排(X
为任务编号)。
- 输入完所有要执行的命令后,按
-
放弃任务并退出
- 未输入命令时:直接按
Ctrl + D
,系统提示warning: commands will be executed using /bin/sh
并退出,不会生成任务。 - 已输入命令但想取消:
- 按
Ctrl + C
强制终止进程(部分环境可能需多次尝试)。 - 若
Ctrl + C
无效,先按Ctrl + D
保存任务,再立即删除(见下文)。
- 按
- 未输入命令时:直接按
删除已安排的at
任务
若任务已保存,需通过以下步骤取消:
-
查看任务编号
执行命令:atq # 或 at -l
输出示例:
10 Thu Jul 11 14:30:00 2025 a root
10
为任务编号,root
为执行用户。 -
删除任务
- 使用
atrm
命令:atrm 10 # 删除编号10的任务
- 或使用
at -d
:at -d 10
- 批量删除:
atq | awk '{print $1}' | xargs atrm # 删除所有任务
- 使用
注意事项
- 权限要求:
- 普通用户只能删除自己创建的任务。
- 管理员(
root
)可删除所有任务。
- 任务已执行:
- 若任务已运行,无法撤销,可通过
ps
或日志检查影响。
- 若任务已运行,无法撤销,可通过
- 备选方案:
- 使用
cron
管理周期性任务,用crontab -e
编辑更灵活。
- 使用
总结步骤
场景 | 操作 |
---|---|
退出交互模式并保存任务 | 按 Ctrl + D |
放弃未提交的任务 | 按 Ctrl + C 或直接 Ctrl + D (空输入) |
删除已保存任务 | 用 atq 查编号 → atrm [编号] |
引用说明参考Linux man-pages的
at(1)
文档(查看链接)及GNU Coreutils官方指南,确保方法适用于主流Linux发行版(如Ubuntu、CentOS)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5946.html