crontab:运行一个命令并在 2 分钟后终止其循环输出?

crontab:运行一个命令并在 2 分钟后终止其循环输出?

我想每 50 分钟运行一个命令,并在命令执行 2 分钟后终止循环输出 PID。

这可能吗?任何帮助都很好。

答案1

使用“timeout”(man timeout 了解详情)。设置一个 crontab 来运行你的命令,但使用/usr/bin/timeout 120s your_command

每次 crontab 调用时,这将运行您的命令 120 秒。

答案2

我没有使用 cron 的经验,但您也可以编写一个在后台无限运行的小型 Bash 脚本,如下所示:

#!/bin/bash
while true ; do         # starts an infinite loop
    YOUR_COMMAND &      # runs YOUR_COMMAND in background
    your_pid=$!         # remembers the PID of YOUR_COMMAND
    sleep 2m            # pauses the script for 2 minutes
    kill $your_pid      # kills YOUR_COMMAND by its previously remembered PID
    sleep 48m           # pauses the script for the remaining 48 minutes
done                    # defines the end of the loop

相关内容