crontab、kill 和 trap 的使用

crontab、kill 和 trap 的使用

我正在学习crontab命令,并且正在做一些尝试。

我使用命令编辑了默认的 crontab 文件crontab -e,我想添加一行,每分钟向当前 shell 进程发送一个 SIGUSR1(进程号 14515),然后在收到信号后,将默认消息打印到stdout。

我添加了这一行:

1 * * * * kill -USR1 14515 | trap "echo Sigusr1 received" SIGUSR1

但过了一分钟,我什么都没看到打印在终端上。出了什么问题?我可以用其他方法做这件事吗?

答案1

有几个问题。首先,crontab 文件中的任何内容都在后台运行,而不是在您的终端中运行。因此,其中的任何“回声”都不会被看到(除非它通过电子邮件发送给您)。

尝试将杀戮留在那里(我确信您知道如果您注销它会改变),但将“陷阱”移到您的 shell 中。

此外,正如所写,您的行将仅在每小时的第一分钟运行(2:01、3:01 等)。如果您希望每分钟运行某项操作,请执行以下操作:

 * * * * * kill -USR1 PID

相关内容