在bash中沒有不必要的延遲超時命令這個答案到命令行命令在一定時間后自動終止命令。建議使用1行方法從bash命令行超時長時間運行的命令:( /path/to/slow command with options ) & sleep 5 ; kill $!但是,給定的“長時間運行”命令可能比超時更早完成。(讓我們稱它為“通常運行時間較長但有時速度較快”的命令,或特爾布夫(為了好玩。)因此,這種巧妙的1-襯砌方法有幾個問題。首先,sleep不是有條件的,因此在序列完成所需的時間上設(shè)置了一個不受歡迎的下限。假設(shè)睡眠時間為30或2米甚至5米,當(dāng)特爾布夫命令在2秒內(nèi)完成-非常不受歡迎。第二,kill是無條件的,所以這個序列會試圖殺死一個沒有運行的進(jìn)程并抱怨它。所以.。有沒有辦法超時一個典型的長時間運行-但有時-快速(“tlrbsf”)命令有一個bash實現(xiàn)(另一個問題已經(jīng)有Perl和C的答案了)將在兩人中較早時終止:特爾布夫程序終止或超時不會扼殺不存在/不運行的進(jìn)程(或者,可選:不會)。抱怨關(guān)于一場兇殺案)不一定是一條線可以在Cygwin或linux下運行。..并且,為了獲得積分,運行特爾布夫命令和背景中的任何“睡眠”或額外進(jìn)程,以便使stdin/stdout/stderr特爾布夫命令可以重定向,就像它已經(jīng)直接運行一樣?如果是,請分享您的代碼。如果沒有,請解釋原因。我花了一段時間試圖破解上述示例,但我的bash技能達(dá)到了極限。
在bash中沒有不必要的延遲超時命令
幕布斯6054654
2019-06-29 17:13:37