退出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 root10为任务编号,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