저는 리눅스에 있고 exec()를 사용하여 Java 응용 프로그램 (JAR 아카이브)을 가지고 있습니다. 어떤 명령이 응용 프로그램 exec()인지 알아야합니다. uting ... strace 및 jstack을 시도했지만 결과가 없습니다. 응용 프로그램이 exec ("ls")를 호출한다고 가정하면 위의 프로그램 출력을 grepping하여 ls 명령을 찾을 수 있습니까?JAVA exec()는 무엇입니까?
질문 : exec()로 실행되는 Java 응용 프로그램을 보는 간단한 방법이 있습니까? 더 나은 상황 개요
편집 :
자바 응용 프로그램에서 내가 그 기능 class.In 서로 정적 함수를 호출 온 클릭 리스너와 버튼이 있다고 가정이라는 exec("ls");
입니다. 내가 그 내가 strace를에서 볼 버튼을 클릭하면 FROM : SCP를 시도
futex(0x7f14a6f799d0, FUTEX_WAIT, 4968, NULLDownload button clicked ! Trying SCP FROM... <unfinished ...>
을 .. 그 버튼 핸들러 내 SOUT 잘 exec()
를 호출하기 전에이다.
다른 편집 : 고맙습니다.하지만 OS 관점에서 말하고 있습니다 ... 내가 sysadmin이고 JAR을 다운로드했다고 가정 해보십시오. 그 JAR의 무엇을하고 있는지 (외부에서) 알고 싶다 - 나는 그래서 strace
을 시도했지만 어쩌면 너무 로깅 ... 간부에서 해당 명령을 호출에 대해 아무것도 보여주지 exec()
에서 시작 프로그램에만 관심이 있어요 많은 낮은 수준의 호출이 ...
그럼 내가 시도 jstack -m
하지만 난 아무것도 exec에서 해당 명령을 찾고 찾을 수 없습니다. 나는 문자열을 그리면서 노력했지만 운이 없었습니다.
'ls' 프로세스가 부모 프로세스로 Java 프로세스를 가져서는 안됩니다. ps의 출력을 볼 때 등? – Thomas
@ 토마스 : 그러나 그 과정은 몇 밀리 초 동안 만 살아있을 것입니다. – Thilo
흠, 멋진 생각 ...하지만 ls 명령이 실행되는 바로 그때에'ps '를 실행하는 경우에만 표시됩니다. 로그 나 트레이스 같은 것이 더 행복 할 것입니다 ... – Matka