프로세스에 대한 실시간 인식을 바꾸고 싶습니다.
내 시스템/커널/하드웨어 시계가 생각하는 속도의 50% 또는 150%로 시간이 흐르고 있다고 프로세스에서 믿게 만듭니다.
프로그램의 소스코드를 패치하지 않고도 어떤 프로그램에서나 작동할 수 있는 일반적인 솔루션을 찾고 싶습니다.
필요한 것을 달성할 수 있는 도구가 있습니까?
답변1
이것이 이 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 시스템 호출 래퍼를 사용하지 않는 경우에는 작동하지 않습니다. 애플리케이션.