上一篇
linux如何结束at命令
- Linux
- 2025-07-24
- 3969
若要结束Linux中的at命令任务,可先使用
atq查看任务列表,再通过
atrm 任务号删除,若在任务编辑界面,按
Ctrl+D保存退出;运行中则用
Ctrl+C中断或
kill强制终止
在Linux系统中,at命令用于安排一次性定时任务,但有时可能需要取消或结束已创建的任务,以下详细介绍如何在不同场景下结束at命令及其任务,涵盖任务创建、提交、执行等各个阶段的操作方法。
结束正在输入的at任务
当使用at命令进入任务输入模式时,若尚未提交任务,可通过以下方式退出:
-
按
Ctrl + D组合键
这是最常规的退出方式,会直接放弃当前输入的任务并不保存。at> echo "Hello World" # 输入任务内容 ^D # 退出输入模式,任务被丢弃
-
使用
exit或EOF触发退出
在at提示符下输入exit或发送EOF信号(如Ctrl + D),系统会终止输入并返回主终端。
取消已提交但未执行的at任务
若任务已通过at提交到队列中,但尚未到达执行时间,可通过以下步骤删除:
-
查看待执行任务列表
使用atq命令查询当前用户的任务队列:
atq
输出示例:
%ignore_pre_3% -
删除指定任务
使用atrm命令加上任务编号删除:atrm 1 # 删除编号为1的任务
强制终止正在执行的at任务
若任务已开始执行但需要立即终止,可采取以下方法:
-
通过
Ctrl + C中断前台任务
如果任务在前台运行(罕见情况,因at通常以后台模式执行),可直接按下Ctrl + C终止。 -
使用
kill命令终止进程
若任务在后台运行,需通过ps查找进程ID(PID)后杀死:
ps -ef | grep at.exe # 查找任务进程 kill -9 <PID> # 强制终止进程
检查与管理atd服务
at任务的执行依赖atd守护进程,需确保其正常运行:
-
检查服务状态
ps -ef | grep atd
若服务未运行,需启动它:
systemctl start atd
-
设置开机自启
systemctl enable atd
修改已创建的任务
若需调整任务内容而非直接删除,可先删除原任务(atrm),再重新创建:

at 14:30 tomorrow echo "Updated Task" | at now + 1min
方法对比表
| 场景 | 命令/操作 | 适用阶段 | 备注 |
|---|---|---|---|
| 退出输入模式 | Ctrl + D |
任务未提交 | 丢弃当前输入 |
| 删除队列任务 | atrm <job号> |
任务已提交未执行 | 需先atq获取任务号 |
| 终止正在执行的任务 | kill -9 <PID> |
任务正在运行 | 需配合ps查找进程 |
| 中断前台任务 | Ctrl + C |
任务在前台运行时 | 仅适用于极少数情况 |
相关问答FAQs
问题1:如何查看at任务的详细信息?
答:默认atq仅显示任务时间和命令摘要,若需完整命令,可结合cat和日志文件:
atq | awk '{print $1}' | xargs -I{} at -c {}
或检查系统日志(如/var/log/syslog)。
问题2:atq和atrm的区别是什么?
答:
atq:仅查询当前用户的任务队列,不进行修改。atrm:删除指定任务,需提供任务编号
