Quantcast
Channel: Linux 技術手札
Viewing all articles
Browse latest Browse all 21

Shell Script 限制執行時間

$
0
0

在撰寫 Shell Script 時,有時會遇到需要限制程式執行時間的情況,例如防止程式無限執行或避免程式佔用過多系統資源等。以下是一些常用方法可以幫助您限制 Shell Script 的執行時間。

1. 使用 timeout 命令

timeout 命令可以限制某個命令或腳本的執行時間,當時間到期時它會向該命令或腳本發送 SIGTERM 信號以終止其執行。例如:


timeout 10s ./myscript.sh

這條命令將執行 myscrip.sh 腳本,並限制其執行時間為 10 秒。

2. 使用 ulimit 命令

ulimit 命令可以限制某個使用者對系統資源的使用,包括 CPU 時間、文件描述符數量、記憶體使用量等。您可以使用 ulimit 命令設定特定的限制,例如:

ulimit -t 10
./myscript.sh

這條命令將限制該使用者的 CPU 時間為 10 秒,然後執行 myscript.sh 腳本。

3. 使用 trap 命令

trap 命令可以監控程式運行期間所接收的信號,例如 SIGTERM、SIGINT 等。您可以使用 trap 命令在程式運行期間設定一個計時器,當時間到期時觸發一個信號以終止程式執行。例如:

trap ‘kill $!’ SIGALRM
(./myscript.sh; kill -ALRM $$) & sleep 10; kill -ALRM $$

這條命令將使用子程序執行 myscript.sh 腳本,並在 10 秒後向該子程序發送 SIGALRM 信號以終止其執行。

總括來說,限制 Shell Script 的執行時間是保障系統穩定和避免資源浪費的好方法。上述這幾種方法可以根據不同的需求和情況選擇使用。


Viewing all articles
Browse latest Browse all 21

Trending Articles