프로그램이 열려 있지 않은 경우 백그라운드 스크립트를 사용하여 다른 bash 스크립트를 실행합니다. 확인해 보니 lsof
앱이 백그라운드에서 실행 중이더라도 True를 반환합니다. 백그라운드 프로세스가 아닌 GUI에서 열리는지 감지하고 싶습니다. 건배
답변1
이를 사용하여 ps
프로세스가 포그라운드 또는 백그라운드에서 실행 중인지 확인할 수 있습니다.
빠른 테스트를 위해 PID가 다음과 같다고 가정하고 bash 쉘을 엽니다.13623
firefox &
이제 Firefox를 백그라운드에서 실행하고 실행 man ps
하면 전경에서 실행됩니다.
다른 bash 쉘에서 실행 중인 경우:
$ ps -O stat --ppid 13623
PID STAT S TTY TIME COMMAND
13897 Sl S pts/4 00:00:02 /usr/lib/firefox/firefox
14079 S+ S pts/4 00:00:00 man ps
--ppid 13623
- PID 13623을 사용하여 bash 쉘에서 실행되는 프로세스를 제공합니다.
-O stat
- STAT 필드 세부정보 제공
+
in은 STAT
프로세스가 포그라운드에 있음을 나타냅니다.
man
가 전경에 있으므로 STAT는S+
자세한 내용은 검색해 PROCESS STATE CODES
보세요 man ps
!