이것은 올바른 접근 방식일 수도 있고 아닐 수도 있지만 타당성을 요구합니다.
우리는 통계 계산을 최신 상태로 유지하기 위해 수시로 업데이트하는 데모 서버를 보유하고 있습니다. 이렇게 해야 하는 유일한 이유는 일부 계산/통계가 지난 X일 동안만 표시되기 때문입니다.
누군가 UNIX 타임스탬프로 호출할 때 CentOS에서 시스템 시계를 중지할 수 있는지 물었습니다. 시간이 일시 중지되면 계산은 매일 동일하므로 더 이상 새 데이터로 데이터베이스를 새로 고칠 필요가 없습니다.
다른 방법(가장 최근의 타임스탬프로 현재 데이터를 업데이트하는 스크립트 등)이 있을 수 있지만 이 요청은 내 관심을 불러일으켰고 이것이 가능한지 궁금합니다.
답변1
시스템 시간을 일시 중지할 수는 없을 것 같습니다. 어쨌든 많은 프로그램은 시간이 지나야 한다고 기대하기 때문에 그것을 좋아하지 않을 것입니다. 시간을 일시 중지하면 모든 프로그램이 시작됩니다.sleep
절대 깨지 마세요.
정확히 무엇을 하려는지 이해하지 못하지만휴가 기간당신이 원하는 것을 할 것입니다. 가짜 시간에 프로그램을 실행하고, 정상 속도로 앞으로 이동하지만 실시간에서 왜곡되거나 심지어 시간이 흐르도록 허용합니다.엑스두 배나 빠릅니다.
이러한 프로그램을 가변 속도로 실행하는 데 시간이 필요한 경우 faketime으로는 그렇게 할 수 없지만 일부 프로그래밍에서는 가능할 수도 있습니다. 또는 가상 머신에서 프로그램을 실행하고 원하는 경우 가상 머신에서 시스템 시간을 설정할 수 있습니다.
답변2
warp
이동이나 크기 조정 등 어떤 방식으로든 주어진 프로세스의 타이밍을 조정할 수 있는 매우 깔끔한 도구가 있습니다 ! - 글로벌 시스템 시간은 영향을 받지 않습니다. 시간 조정 공식은 시간 = 시간 + 워프 + (시간 - 베이스) * (인수 - 1)입니다. 자세한 내용은 다음에 설명되어 있습니다.뒤틀린 맨페이지. 사용하는 방법은 DLL 사전 로드 기능을 사용하여 시스템의 모든 시간 정보를 가로채는 것입니다. 기술적으로 말하면 시간 함수 호출에 연결할 수 있으려면 동적으로 연결된 프로그램이 필요합니다. 해당 전제조건이 충족되면 호출을 통해 실행 파일을 변경하지 않고도 투명하게 사용할 수 있습니다 warp ... program ...
(첫 번째는 ...
후속 시간 표시 방법을 조정하는 매개변수입니다).warp
program
답변3
당신이 만족하는 해키 솔루션은 다음과 같습니다(루트로서):
export NOW=$(date); watch -n1 date --set=\"$NOW\"
그러나 그것은 아마도 좋은 생각이 아닐 것입니다 :)