2016-06-06 1 views
-2

모든 응용 프로그램의 서비스 상태를 확인하는 웹 응용 프로그램 (Java)을 개발하고 싶습니다. JAVA를 사용하여 Linux 컴퓨터에서 실행중인 서비스의 상태를 확인하는 방법

은 어떤 하나 나는 모든 서버에서 실행중인 서비스를 가지고 4 개 리눅스 서버를

(톰캣 서비스 등) 리눅스 시스템에서 실행중인 서비스를 위해 그렇게 할 자바 코드를 작성하는 방법에 나를 도울 수 있습니다. 그래서, 나는 그들 자신을 자바에서 연결하고 프로세스 상태를 얻고 싶습니다.

+0

당신은 지금까지 무엇을하려고 않았다 ? – Abhishek

+0

어디서부터 시작 해야할지 모르겠다. java에서 리눅스 프로세스를 읽는 법을 알지 못한다. Go, google links – saivinod

답변

0
public static void main(String args[]) throws JSchException, InterruptedException, IOException { 
     JSch objJSch = new JSch(); 
     Session objSession = objJSch.getSession("userName", "ip_address"); 
     objSession.setPassword("password"); 
     objSession.setConfig("StrictHostKeyChecking", "no"); 
     System.out.println("Establishing Connection..."); 
     objSession.connect(); 
     System.out.println("Connection established."); 
     Channel objChannel = objSession.openChannel("exec"); 
     ((ChannelExec) objChannel).setCommand("ps aux"); 
     InputStream in = objChannel.getInputStream(); 
     objChannel.connect(); 
     String s; 
     BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
     while ((s = br.readLine()) != null) 
      System.out.println(s); 
     System.out.println("disconnecting..."); 
     objChannel.disconnect(); 
     objSession.disconnect(); 
     System.out.println("disconnected."); 
} 

JSch 라이브러리를 사용하면 ssh 연결이 가능합니다. 다음과 같은 의존성 다른 다운로드를 추가 다음 link의 다른 예를 통해 이동 경로에 항아리를 배치 할 수 있습니다 :

<dependency> 
     <groupId>com.jcraft</groupId> 
     <artifactId>jsch</artifactId> 
     <version>0.1.53</version> 
</dependency> 

당신은 루프 내부 서버의 'N'번호의 과정을 반복 할 수 있습니다. 위의 코드는 다음과 같은 결과를 출력합니다 : (os에 의존. 우분투를 사용하고 있습니다. 이상한 테이블 디자인 때문에 나를 용서해줍니다. 제대로 포맷 할 수 없었습니다).

|| 사용자 || PID || % CPU || % MEM || VSZ || RSS || TTY || STAT || START || TIME || COMMAND ||

|| 루트 || || || 0.0 6,860 2,202 144,768 || || 0.0 || || S || 04 : 57 || 0 || 00 tint2 ||

... // 다음 행

... // 스탯 열이 응용 프로그램의 상태를 나타내고

다음 행에게.

(이벤트가 완료 될 때까지 대기) (실행 큐에)

D 무정전 수면 (보통 IO)

R 실행 또는 실행 가능한

가 인터럽트 잠을 S : 다음은 응용 프로그램의 그럴듯한 상태입니다

T는

W 페이징합니다 (2.6.xx 커널 보낸 잘못)

잡 제어 신호에 의해 또는이를 추적 중이므로 역시 정지

X 죽은

(link에서 가져온 정보 위의) 부모에 의해 수확,

Z 소멸 ("좀비") 과정 (절대 볼 수없는) 종료하지만

+1

이것은 OP가 요구 한 것이 아니다. – Seelenvirtuose

+0

@ 셀렌 비어 스는 명확히 할 수 있습니까? 내 대답을 향상시키는 데 도움이 될 것입니다. – Abhishek

+0

원격 Linux 서버에 연결하여 java를 사용하여 프로세스 상태를 얻고 싶습니다. 여러 리눅스 머신을 가지고 있기 때문에 – saivinod

관련 문제