고객 로그를 분석 중이므로 어떤 배포판이 실행 중인지 알아야합니다. 나는 그들의 시스템에서 명령을 실행할 수 없다. 내가 갖고있는 것은 로그 뿐이다.리눅스 배포판을 결정하기 위해 os.version 값을 안정적으로 사용할 수 있습니까?
os.name 속성은 항상 Linux를 반환하지만 os.version은 커널 버전 인 것으로 나타납니다. 예를 들어, 2.6.9-42.0.3.ELsmp 또는 2.6.5-7.283-smp.
os.version의 마지막 문자를 배포판에 매핑 할 수있는 일부 Google이 나타난 후.
ELSMP 또는 EL로 끝나는 값은 Redhat에 매핑되고, 일반 smp는 SUSE에 매핑됩니다.
그게 사실인가요, 아니면 그냥 희망적으로 생각하고 있습니까?
나는이 질문에 약간 당황 스럽다. 왜 이것을 알 필요가 있습니까? 왜 응용 프로그램에서 버전을 찾기 위해 외부 명령을 실행할 수 없습니까? 왜 고객에게 물어볼 수 없습니까? –
좋은 질문입니다. disto를 결정하는 확실한 방법이없는 많은 기존 데이터가 있습니다. 예를 들어, SUSE에서 uname은 SUSE에 대한 명백한 참조를 포함하지 않으며 SMP 만 포함합니다. 어쩌면 다른 명령을 사용할 수는 있지만 외부 명령을 포크로 연결하여 다른 문제, 경로 지정 및 사용 권한을 유발할 수 있습니다. 일반적인 Java VM 프로퍼티에서 disto를 알아낼 수 있다면 문제는 훨씬 간단해질 것입니다. 건배. – KaizenSoze