그놈 터미널에서 탭을 닫으려고하면 다음과 같이 표시됩니다.
이 터미널을 닫으시겠습니까? 이 터미널에서 여전히 실행중인 프로세스가 있습니다. 터미널을 닫으면 터미널이 종료됩니다.
아직 실행중인 항목을 어떻게 알 수 있습니까? 의 출력에는 아무것도 없습니다 jobs. 감사.
exit에는 그놈 터미널 탭이 닫히지 않습니다.
exit후 아마 닫을 것입니다. @egmont 당신은 이것을 답변으로 옮길 수 있습니까?
그놈 터미널에서 탭을 닫으려고하면 다음과 같이 표시됩니다.
이 터미널을 닫으시겠습니까? 이 터미널에서 여전히 실행중인 프로세스가 있습니다. 터미널을 닫으면 터미널이 종료됩니다.
아직 실행중인 항목을 어떻게 알 수 있습니까? 의 출력에는 아무것도 없습니다 jobs. 감사.
exit에는 그놈 터미널 탭이 닫히지 않습니다.
exit후 아마 닫을 것입니다. @egmont 당신은 이것을 답변으로 옮길 수 있습니까?
답변:
ps T
터미널과 관련된 모든 프로세스를 선택합니다.
nohup명령을 통해 생성 된 프로세스는 터미널에서 연결이 해제되므로 닫기를 막지 마십시오. 그러나 여전히이 명령으로 나열됩니다.
쉘의 PID를 부모로 나열하는 프로세스에서 정점에 도달 할 수 있습니다. 당신이 알거나 모르는 것처럼, 우리는 ps형식을 지정할 수 있습니다
SHELLPID=$$ ; ps -e -o cmd,pid,ppid | awk -v shell=$SHELLPID '$NF~shell'
여기, 우리는 특별한 변수에서 쉘의 PID를 얻을 $$에 SHELLPID다음 파이프의 서브 쉘에서 AWK 사용할 수 있습니다. 기본적으로 우리는 NAME, PID, Parent PID 형식으로 프로세스를 나열하고 마지막 열에 적절한 PID를 가진 프로세스 만 필터링합니다.
터미널에서 프로세스 (예 : gedit)를 시작한 경우이 두 프로세스에 대한 프로세스 ID (PID) (bash) 및 부모 프로세스 ID (PPID) (gedit)가 동일합니다. 이것은의 출력에서 볼 수 있습니다
ps -ef
명령. 가독성을 높이려면 먼저 출력을 "파이프"하여 grep현재 실행중인 모든 "bash"프로세스의 PID를 찾은 다음 다시 "파이프"하는 것이 awk좋습니다. 이 옵션 awk은 PID 및 프로세스 이름 필드 (필드 2 및 8) 만 선택하여 화면에 출력합니다.
ps -ef | grep bash | awk '{print $2 ": " $8}'
출력의 숫자는 PID입니다. 이를 사용하여 해당 PID가있는 터미널에서 시작된 프로세스를 찾습니다. 하나 이상의 터미널을 연 경우 둘 이상의 출력 라인이있을 수 있습니다. 이제 해당 터미널 세션의 "자식"프로세스 (있는 경우)를 찾으려면 다음 명령을 사용할 수 있습니다.
ps -ef | awk '{if ($3 == EnterPID) print $2 ": " $8;}'
마지막 명령에서 EnterPID 대신 PID 번호를 입력해야합니다. "bash"에 대해 둘 이상의 PID가있는 경우 모두 시도해야합니다.
마지막 명령은 출력을보고 ps -efPID (이전 명령에서 찾은)와 PPID가 프로세스에 대해 동일한 지 검색합니다.
더 많은 정보:
screen,tmux,script,ssh,mc등을 입력하여 오프 패널을 설정하거나, 또 다른 쉘bash, 또는 이러한 라인을 따라 뭔가를. Ctrl + D를 누르거나 타자exit를 치면 쉘이 종료됩니다.