• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 設定程式執行時間上限 timeout 指令教學與範例

介紹如何在 Linux 系統上使用 timeout 指令限制程式的執行時間,避免問題程式執行太久。

限制程式執行時間

Linux 的 timeout 指令可用來限制指定程式的執行時間上限,如果程式執行的時間太久,超過指定的上限值,程式就會被終止(kill),其語法為:

timeout 時間 指令

時間的格式為浮點數加上時間單位,可用的單位有:

單位 意義 範例
s 秒 30s(30 秒)
m 分鐘 5m(5 分鐘)
h 小時 2.5h(2.5 小時)
d 天 1.5d(1.5 天)

舉例來說,若希望 myscript.sh 這個指令稿的執行時間不可超過 30 秒,則可以這樣執行:

# 限制程式執行時間不可超過 30 秒
timeout 30s ./myscript.sh

保留狀態值

每個程式在執行完畢之後,都會傳回一個狀態值,如果希望 timeout 將指令的狀態值傳回,可以加上 --preserve-status 參數:

# 傳回程式的狀態值
timeout --preserve-status 30s ./myscript.sh

指定訊號

若要指定終止程式時要傳送的訊號(signal),可以使用 --signal 參數:

# 指定終止程式所使用的訊號
timeout --signal='SIGHUP' 30s ./myscript.sh

訊號在指定時亦可使用數字,可用的訊號名稱或數值可以使用 kill -l 指令查詢。

如果擔心程式在收到訊號之後,沒有正常終止,可以再加上 --kill-after 指定等待終止的時間,若超過這個時間,就會以 KILL 訊號終止程式:

# 若超過 5 秒未完成終止程式,則送出 KILL 訊號
timeout --kill-after=5s 30s ./myscript.sh

參考資料

  • Linux Handbook:Put a Timer on Your Running Commands With Timeout Command in Linux

分類:Linux

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide