문제

불행하게도 제 질문은 동일한 프로세스로 생성된 두 개의 창을 추적하는 것만큼 간단하지 않습니다.

내가 가진 것은 다음과 같습니다.

  • Jack과 Jim이라는 두 명의 사용자가 동일한 Unix 시스템에 원격으로 로그인하여 X 서버를 실행합니다.
  • Jack은 X 창에서 GUI를 여는 'AwesomeApp' 애플리케이션을 실행합니다.
  • Jim은 이 애플리케이션의 다른 인스턴스를 실행하여 자신의 GUI 창을 엽니다.
  • 이제 Jack은 'AwesomeApp'의 HIS 인스턴스이기 때문에 첫 번째 창(예: 'AwesomeApp')을 소유한 프로세스와 통신하는 감독자 애플리케이션을 실행합니다.
  • 그의 감독자 인스턴스는 'AwesomeApp' 창의 어느 인스턴스가 자신의 것인지 어떻게 알 수 있습니까?

아아아아...사용자별로 찾아보면 네, 그럴 수도 있겠네요.사용자에게 서로 다른 두 곳에서 동일한 사용자 계정으로 로그인할 수 없다고 알려주기만 하면 됩니다.

도움이 되었습니까?

해결책

당신이 사용할 수있는 pgrep Jack의 AwesomeApp 인스턴스 프로세스 ID를 얻으려면:

pgrep -u Jack AwesomeApp


따라서 쉘 스크립트에서 감독자 애플리케이션을 시작하면 다음과 같은 작업을 수행할 수 있습니다.

AWESOME_ID=`pgrep -u $USER AwesomeApp 2>/dev/null`

# run the supervisor application and pass the process id as the argument
supervisor $AWESOME_ID


또는 pgrep이나 같은 외부 프로그램을 사용하고 싶지 않은 경우 추신, 언제든지 프로세스를 찾아볼 수 있습니다. /proc 곧장.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top