일부 프로세스를 종료할 수 있기를 원합니다. 나는 프로세스 ID(파일에 제공됨)를 알고 있으며 하나씩 수행하고 싶지 않습니다. 명령을 재귀적으로 호출하고 명령에서 하는 kill
것처럼 파일이나 표준 입력을 통해 명령에 입력을 제공하는 등 의 작업을 수행할 수 있는 방법이 있습니까 ?rm
답변1
한 줄에 하나의 프로세스 ID 가 있는 파일이 주어지면 pids.txt
다음을 수행할 수 있습니다.
xargs kill <pids.txt
그러면 kill
파일의 프로세스 ID를 사용하여 유틸리티가 호출됩니다.
다른 솔루션에는 다음이 포함됩니다.
kill $(cat pids.txt)
IMHO 이건 그다지 우아하지도 않고,
while read pid; do
kill "$pid"
done <pids.txt
간단한 일을 하기 위해 글을 많이 쓰는군요.
위 변형 중 어느 것도 텍스트 파일의 프로세스 ID가 다음과 일치하는지 확인할 수 없습니다.같은파일을 생성할 때 프로세스 ID가 추가된 프로세스입니다.
Linux 시스템에서는 일반적으로 각각의 새 프로세스의 프로세스 ID가 1씩 증가하며, 허용되는 최대 프로세스 ID를 사용하는 경우 더 작은 숫자에서 더 많은 ID가 할당됩니다. 이는 프로세스 ID가 시간이 지남에 따라 재사용됨을 의미합니다.
OpenBSD와 같은 일부 시스템에서는 프로세스 ID가 무작위로 할당됩니다. 여기에서도 일정 시간이 지나면 이전 프로세스 ID가 재사용됩니다.