Linux

linux +命令超時

  • June 21, 2016

在我的 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不間斷地執行。

要對任何問題回答“否”,-qq請在命令中添加選項。

使用時,--force/--yes您應該仔細檢查腳本在做什麼。+1 凱倫 B 的建議使用expect.

引用自:https://serverfault.com/questions/784928