Bash

如何在超時後自行終止 bash 腳本?

  • September 3, 2020

我有一個 bash 腳本做很多事情,叫做script.sh

#!/bin/bash
#It
#Is
#Doing
#Things

有沒有一種方法可以讓我從自身內部獲取該腳本的程序 ID,然後在 5 分鐘後將其殺死?

像:

#!/bin/bash
#Get pid of script.sh here, start a 5 minute timer and kill the script after time runs out
#It
#Is
#Doing
#Things

作為 GNU coreutils 一部分的timeout實用程序可以為您完成:

timeout 5m bash script.sh

將在執行 5 分鐘後終止腳本。

你得到 PID PID=$$

使用 command 可能最容易實現您想要的timeout

但是您也可以執行後台程序:

(sleep $TIMEOUT && kill "$PID") &

引用自:https://unix.stackexchange.com/questions/130829