2014-06-13 5 views
0

Sigar library을 사용하여 프로세스 ID를 얻고 모니터합니다.Sigar에서 프로세스 이름의 일부로 프로세스 ID를 가져옵니다.

해당 프로세스를 실행하는 응용 프로그램의 버전에 따라 이름을 변경할 수있는 프로세스가 있습니다. 예를 들어 :

  • myProcess65.exe
  • myProcess% 같은 것을 명시 할하여 프로세스 ID를 가져 SIGAR를 사용하는 방법이 있나요

    • myProcess64.exe?

      는 지금은이 사용하고 있습니다 :

      내가 성공하지 않고 PTQL (Process Table Query Language) syntax를 사용하여 일반 expresions를 사용하려고했습니다
      ProcessFinder find = new ProcessFinder(this.sigar); 
      long[] pids = find.find("Exe.Name.ct=" + this.processName); 
      

      :

      //getting the process with name "Photoshop.exe" (not working currently) 
      long[] pids = find.find("Exe.Name.re=^Photo(.)*.exe$); 
      

    답변

    0

    Exe.Name는 실행중인 프로세스의 경로를 반환 , 프로세스의 이름 만이 아닙니다.

    따라서 정규 표현식은 다음과 같아야합니다

    long[] pids = this.find.find("Exe.Name.re=^.*\\\\Photo(.)*.exe$");