2014-04-07 3 views
3

Mac 용 응용 프로그램 설치 프로그램을 만들고 있습니다. 설치 프로그램에는 설치시 사용자로부터 코드를 가져 오는 작업이 포함됩니다. 코드 입력 화면에 Installer Plugin을 사용했습니다.Mac에서는 Apple Remote Desktop을 통해 현재 실행중인 경우 스크립트 (sh/bash/applescript)를 어떻게 결정합니까?

나는 (this link에서) 읽었으며 명령 줄과 Apple Remote Desktop에서 플러그인이 작동하지 않는지 확인했습니다. 설치 프로그램이 변수 ("$ COMMAND_LINE_INSTALL")를 사용하여 명령 줄에서 실행 중인지 확인할 수 있습니다.

제 질문은 Apple Remote Desktop을 통해 프로그램 방식으로 실행 중인지 어떻게 확인할 수 있습니까?

답변

0

pstree을 사용할 수있는 경우 현재 프로세스의 빠른 조상을 얻고 bash에 pstree -p $$과 같은 Apple Remote Desktop이 있는지 확인할 수 있습니다. 유감스럽게도 BREW를 사용하여 pstree을 설치 했으므로 바이너리를 직접 배포하지 않는 한 BREW를 사용할 수 없을 가능성이 높습니다.

다른 접근법은 부모님 자신을 위로 걷는 것입니다. 다음은 내가 iTerm 내부에서 실행 중인지 확인하기 위해 테스트 한 샘플입니다 (iTerm을 샘플로 사용했습니다. Apple Remote Desktop에서 실행될 때 pstree 출력이 어떻게 표시 될지 모르기 때문입니다).

pid=$$ 
running_in_iterm=0 
while [ $pid -ne 1 ]; do 
    command=$(ps -o command= -p $pid) 
    case "$command" in 
     *iTerm*) 
      running_in_iterm=1 
      break;; 
    esac 
    pid=$(ps -o ppid= -p $pid) 
done 
if [ $running_in_iterm -eq 1 ]; then 
    echo "Running in iTerm" 
else 
    echo "Not running in iTerm" 
fi 

당신은 모두뿐만 아니라 iTermTerminal 응용 프로그램에 내장 된 볼의 차이에서이 스크립트를 실행 시도 할 수 있습니다.