📅  最后修改于: 2023-12-03 14:43:56.166000             🧑  作者: Mango
atd 是一个 Linux 系统下的守护进程,它负责处理系统中所有的延时任务,例如计划在未来某个时间点运行的工作。通过 atd 命令,用户可以创建和管理这些延时任务。
at [-mldv] [-f filename] [-q queue] time
at [-mldv] [-f filename] [-q queue] time < file
at -c job [job...]
at -r job [job...]
at -l
-m
:将作业提交的用户进程环境变量复制到 at 执行的环境变量中。-l
:列出当前系统所有的 at 显示排程。-d
:删除指定的 at 显示排程。-v
:指定 at 的执行状态发生变换时,通知执行者。-f filename
:将 filename 的内容作为标准输入传递给 at 的标准输入。-q queue
:指定 at 的类型,queue 的值可为a,b,c或d,用于指定job的执行优先级。$ at now + 2 minutes
at> echo "hello world" > ~/hello.txt
at> <EOT>
job 5 at Thu Sep 9 18:22:00 2021
在上述示例中,我们通过 atd 命令创建了一个延时任务,该任务会在当前时间过了 2 分钟后执行。在 atd 提示符 at>
后,我们输入了要执行的命令 echo "hello world" > ~/hello.txt
,表示将“hello world”写入到~/hello.txt文件中。在执行完任务后,atd 根据我们设置的时间,将任务加入到了默认的队列中。执行该任务可以通过如下命令:
$ cat ~/hello.txt
$ at -l
8 Thu Sep 9 18:20:00 2021 a donald
9 Thu Sep 9 18:22:00 2021 a donald
在上述示例中,我们通过 atd 命令查看了所有的延时任务。在输出结果中,每一行代表一个延时任务,其中第一列为任务 ID,第二列为任务执行的时间,第三列为任务的类型(在示例中为默认类型 a),第四列为任务的所有者。
$ at -d 8
在上述示例中,我们通过 atd 命令删除了 ID 为 8 的延时任务。执行该命令后,任务将从任务队列中删除。