저는 Sublime Text 3에 대한 JavaScript 단위 테스트를 위한 내장 시스템을 작성하고 있습니다. 나는 사용하고있다
JS 테스트 드라이버내 테스트 프레임워크로. Sublime Text는 하나의 명령만 실행할 수 있으므로 bash 스크립트를 사용하여 작업을 수행했습니다. js-test-driver는 Java 애플리케이션이며 이미 실행 중인지 테스트할 수 있기를 원합니다. 내가 아는 한, 프로세스 이름은 입니다 . 프로세스 내에서 어떤 Java 애플리케이션이 실행되고 있는지 java
알 수 있는 방법이 있습니까 ? java
그렇지 않은 경우 특정 Java 애플리케이션이 실행 중인지 어떻게 테스트할 수 있습니까?
답변1
jps
다음 명령을 사용할 수 있습니다 .
jps | grep "[0-9][0-9]* js-test-driver"
그러나 호출되지 않을 js-test-driver
수도 있습니다 js-test-driver.jar
. 먼저 출력을 살펴보세요 jps
.
답변2
(대부분의 Linux 시스템에서 표준 이어야 procps-ng
ps
함) 이 -C
옵션을 사용하여 특정 이름의 명령으로 출력을 제한할 수 있습니다. 아마도 js-test-driver
명령 매개변수 어딘가에 있을 것입니다. 다음을 사용하여 실행 중인 프로세스의 모든 매개변수를 나열할 수 있습니다 java
.
ps -C java -o args=
js-test-driver
매개변수 목록의 어느 곳에서나 테스트하려면 다음을 수행할 수 있습니다.
ps -C java -o args= | grep -q js-test-driver &&
echo 'js-test-driver running'
pgrep
위와 동일하게 를 사용할 수도 있습니다 .
pgrep -f js-test-driver >/dev/null && echo 'js-test-driver running'
프로세스가 실행 중인지 확인하는 이유가 동시에 두 개의 스크립트를 시작하지 않기 위한 것이라면 가능한 경쟁 조건을 피할 수 있는 보다 안정적인 방법이 있다는 점에 유의하십시오. 날 봐여기에 대답하세요파일을 잠그는 방법의 예.