서버의 날짜와 타임스탬프를 변경해야 하는 요구 사항이 있습니다.자주필수 값과 관련 프로세스(Weblogic 서버/Java 가상 머신 프로세스 및 스크립트)에는 날짜와 시간이 업데이트되어야 합니다. 이는 프로세스를 다시 시작하지 않고도 weblogic 서버와 스크립트가 업데이트된 날짜로 실행되도록 수행됩니다.
가능한 타임스탬프 변경자는 다음과 같습니다.libfaketime그러나 모든 프로세스 또는 PID 세트에 대한 오프셋으로 시간을 변경하기 위해 무엇이든 수행할 수 있습니다.
목표는 프로세스가 실행된 날짜가 PID를 종료하지 않고 오프셋(일 수)만큼 변경될 때 프로세스를 실행하는 것입니다. 날짜를 수동으로 변경하고 프로세스를 종료하는 것보다 유틸리티가 시간이 덜 걸린다면 괜찮습니다.
답변1
서버의 날짜와 타임스탬프가 매일 변경되어야 한다는 요구 사항이 있습니다.
이것은 모호하다(그리고 매우나쁜시스템을 남용하고 있기 때문에 디자인하십시오). 얼마나 실용적인지문서변경된 메타데이터가 필요합니까? 어떤 파일 시스템에서? 디렉토리와 관련이 있습니까 /proc/1234/
(프로세스의 PID가 1234인 경우)? 바라보다공정(5).
(서버가 읽기 전용 파일 시스템(예: CDROM)에 있다면 어떻게 될까요?)
그런데 "업데이트 프로세스"가 무엇을 의미하는지 정의하지 않았습니다. 상상력이 풍부해도 당신이 원하는 것이 무엇인지 짐작할 수 없습니다.
반품,이것이 왜 필요한가요?왜 뭔가를 바꿀 수 없나요?다른날짜 및 시간 스탬프(일부데이터파일 또는 데이터베이스의 행)을 확인하고 확인하시겠습니까? "서버 실행 파일"이 이를 허용하지 않는 이상한 파일 시스템에 있거나 유효한 mtime이 없는 경우 어떻게 감지합니까? 좀 그런거같아XY 문제.
목표는 날짜가 실행 중인 프로세스의 오프셋(일 수)을 변경하는 동안 프로세스를 실행하는 것입니다.
그런 다음 전체 POSIX API, 적어도 모든 시스템 목록 호출에 대한 액세스를 제공하는 "셸형" 프로세스(C 또는 다른 언어 - Go, Ocaml, Rust, C++, Python 등)를 작성합니다.시스템 호출(2), 당신은 또한 볼 수 있습니다소개(2)최소한 Unix 프로그래밍 책을 읽어보세요.알칼리성 포스파타제또는 더 어린 것). 이 "쉘 같은" 것은 실제 서버를 모니터링하고 종료합니다.
또한 대부분의 Java 구현은 이러한 모든 Java 프로세스가 실행된다는 의미에서 JVM에 의해 해석됩니다.동일한JVM 실행 파일, 아마도 일부/usr/bin/java