2011-11-18 2 views
2

glassfish 설치가 있고 실행중인 경우 간단한 터미널 명령 검사를하고 싶습니다. 있다면 프로세스를 종료합니다. 또는 실행 중이 아니면 서버를 시작합니다.터미널 명령 : 실행 중이거나 실행 중이 아닌 경우 프로세스 시작 또는 중지

/Applications/NetBeans/glassfish-3.1.1/bin/.asadmin stop-domain domain 

나는이를 시작할 수있는 것보다 간단한 Alfred.app 스크립트를하고 싶습니다 것

/Applications/NetBeans/glassfish-3.1.1/bin/./asadmin start-domain domain 

내가 입력 할 수있는 서버를 중지하려면 다음

내가 입력 할 수있는 서버를 시작하려면 도메인이 실행 중이 아니면 실행 중지하거나 실행중인 경우 중지하십시오.

답변

1

이렇게하는 한 가지 방법은 시작될 때 서버의 프로세스 ID를 파일에 기록하고 해당 프로세스가 실행 중인지 확인하기 위해 다른 스크립트를 확인하는 것입니다.

예를 들어, 스크립트 A (무조건 서버를 실행하기 위해) : 오직 맥 OS X 10.8 (마운틴 라이온) pgrep를 설치

#!/bin/sh 
pid=`pgrep -F ~/.glassfish-server.pid` # file chosen in script A 
if [ "x$pid" = "x" ] ; then 
    # process has died; restart by running script A 
    /path/to/scriptA 
fi 

참고 :

#!/bin/sh 
/Applications/NetBeans/glassfish-3.1.1/bin/./asadmin start-domain domain 
# file name is arbitrary 
pgrep whateverTheProcessNameIs > ~/.glassfish-server.pid 

을 그리고 스크립트 B에 기본적으로; 그렇지 않으면 다른 프로세스 (예 : ps 출력 파싱)를 사용하여 실행중인 프로세스를 확인해야합니다.

정기적으로이 검사를 실행하는 방법에는 여러 가지가 있습니다. Alfred가 실행 가능한 스크립트 (chmod +x scriptA scriptB)를 실행한다고 가정하고 있지만 확실하지는 않습니다.

관련 문제