하나의 프로세스에 대한 실시간 인식 변경

하나의 프로세스에 대한 실시간 인식 변경

하나의 프로세스에 대한 실시간 인식을 바꾸고 싶습니다.

내 시스템/커널/하드웨어 시계가 생각하는 속도의 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 101초 동안 잠자기).

모든 시간에 분수 곱셈기(예: 0.5 또는 0,5(지역에 따라 다름))를 사용하여 시계 속도를 늦출 수 있습니다.속이는마지막에서 두 번째 2진짜초. 예를 들어 다음을 참조하세요.

faketime -f '+0 x0.5' watch date

이는 를 사용하여 실행 파일에 코드를 삽입함으로써 작동하므로 LD_PRELOAD정적으로 링크된 애플리케이션이나 setuid/ setgid실행 파일, 정리된 환경이나 사용자 네임스페이스에서 명령을 실행하는 애플리케이션, libc 시스템 호출 래퍼를 사용하지 않고 시간 정보나 절전 모드를 얻는 애플리케이션에서는 작동하지 않습니다.

관련 정보