
하나의 프로세스에 대한 실시간 인식을 바꾸고 싶습니다.
내 시스템/커널/하드웨어 시계가 생각하는 속도의 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 시스템 호출 래퍼를 사용하지 않고 시간 정보나 절전 모드를 얻는 애플리케이션에서는 작동하지 않습니다.