나는 ( ) 자식 프로세스를 python
생성하고 그 결과 여러 자식 프로세스 자체를 생성하는 프로세스를 가지고 있습니다. 여기서는 프로세스를 종료하지 않고 루트로 간주되는 프로세스 트리의 모든 프로세스를 종료하고 싶습니다 .git
git clone
git
python
가능한 해결 방법(단, 주의 사항 있음):
python
자식 프로세스 트리를 재귀적으로 탐색합니다/proc/<pid>
.
이 경우 이 프로세스 계층 구조의 프로세스가 종료되기 전에 하위 프로세스를 생성하지 않도록 하려면 어떻게 해야 합니까? 이 경우 하위 프로세스는 고아 프로세스(경합 조건)가 됩니다.
- 다른 모든 하위 항목을
python
포함하는 프로세스의 프로세스 그룹을 종료합니다 .git
이 경우 python
프로세스도 종료되는데, 이는 발생하고 싶지 않습니다.
프로세스 자체 python
가 아닌 process 를 기반으로 하는 프로세스 계층 구조의 모든 프로세스를 안정적으로 종료할 수 있는 방법이 있습니까 ?python
답변1
이 pslist
패키지에는 rkill
모든 하위 항목을 종료할 수 있는 명령이 포함되어 있습니다.
pslist 유틸리티는 현재 프로세스 목록을 검사하여 지정된 프로세스와 모든 하위 프로세스를 찾습니다. [..]
rkill로 호출되면 이 유틸리티는 프로세스에 대한 정보를 표시하지 않고 대신 신호를 보냅니다. 명령줄에 지정하지 않으면 종료(SIGTERM) 신호가 전송됩니다.
git의 pid만 주면 됩니다.
(우분투/아치 등에서 사용 가능)