Process
改變對一個過程的實時感知
我想改變一個過程的實時感知。
讓程序相信時間以我的系統/核心/硬體時鐘認為的速度的 50% 或 150% 流逝。
我想找到一個可以與任何程序一起使用的通用解決方案,而無需修補程序的原始碼。
有什麼工具可以實現我所需要的嗎?
這就是該
faketime
命令的目的。例如:$ time faketime -f '+0 x10' sh -c 'date +%T; sleep 10; date +%T' 13:29:02 13:29:12 faketime -f '+0 x10' sh -c 'date +%T; sleep 10; date +%T' 0.00s user 0.00s system 0% cpu 1.009 total
啟動該外殼,時鐘執行速度是正常速度的 10 倍(
sleep 10
睡了 1 秒)。時鐘可以通過使用小數乘數(如 0.5 或 0,5(取決於您的語言環境)來減慢每一個偽造的秒到持續 2 個真實秒。例如:
faketime -f '+0 x0.5' watch date
這通過將程式碼注入到執行檔中來
LD_PRELOAD
工作,因此不適用於靜態連結的應用程序或setuid
/setgid
執行檔,或者在淨化環境或使用者命名空間中執行命令的應用程序,或者在不使用 libc 系統呼叫包裝器的情況下獲取時間資訊或睡眠的應用程序。