Bash
如何在超時後自行終止 bash 腳本?
我有一個 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") &