Linux
linux +命令超時
在我的 bash 腳本中,我想為 lvresize 命令添加超時,所以如果命令正在等待,
我將在 5 秒後退出,如下所示:
timeout 5 lvresize -L 1M /dev/mapper/rootvg-home Rounding size to boundary between physical extents: 32.00 MiB WARNING: Reducing active and open logical volume to 32.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce home? [y/n]:
但是由於一些不清楚的原因超時不適用於lvresize?
為什麼?超時 5 秒後不退出命令?
為什麼這會失敗(我的假設是
lvresize
忽略TERM
信號),這是一種糟糕的方法,因為lvresize
真正的任務可能需要很長時間,而且你真的不想在它工作的時候殺死它。相反,單獨要求確認(
timeout
如果需要),然後lvresize
不間斷地執行。
要對任何問題回答“否”,
使用時,
--force/--yes
您應該仔細檢查腳本在做什麼。+1 凱倫 B 的建議使用expect
.