我需要執行一個運行多個管理系統命令的進程。我想保持sudo timestamp當前運行,以防過程運行時間過長。如何在ruby中運行異步循環?
我有以下代碼,但它似乎不工作。
sudo_keep_alive = Thread.start do
def sudo
sleep 5.minutes
`sudo -v`
sudo
end
sudo
end
at_exit do
sudo_keep_alive.kill
end
這是否有約定?
UPDATE
原因我不能運行腳本有根,是有其他的系統命令的腳本運行不能作爲根運行。每個命令都需要負責運行它自己的管理命令。該腳本可能需要大量時間才能運行,所以我只是想在命令需要的時候保持sudo時間戳。
爲什麼不用'sudo'運行你的ruby腳本? –
這沒什麼意義。首先,你需要保持sudo的憑據更加系統化,而不是這種黑客攻擊。其次,你的線程會與主進程同時死掉,所以用Kernel.at_exit註冊是毫無意義的。 –