📜  Linux 中的 atd 命令及示例(1)

📅  最后修改于: 2023-12-03 14:43:56.166000             🧑  作者: Mango

Linux 中的 atd 命令及示例

简介

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 的延时任务。执行该命令后,任务将从任务队列中删除。