![pgrep을 Kill과 연결할 수 있나요?](https://linux55.com/image/38482/pgrep%EC%9D%84%20Kill%EA%B3%BC%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
|
첫 번째 명령의 결과를 다른 명령으로 보내는 데 사용되는 것으로 나타났습니다 . 이름과 일치하는 모든 프로세스를 종료하고 싶습니다.
pgrep이 일반적으로 수행하는 작업은 다음과 같습니다.
$ pgrep name
5089
5105
그리고 여러 매개변수가 다음과 같은 경우에 작동하는 것 같습니다 kill
.
sudo kill 5089 5105
그러나 이것은 잘못된 것입니다:
pgrep name | kill
그렇다면 올바르게 수행하는 방법은 무엇입니까?
답변1
이 시도:
pgrep name | xargs kill
을 사용하면 pgrep name | kill
의 출력이 pgrep name
stdin 으로 공급됩니다 kill
. kill
매개변수가 stdin에서 읽히지 않기 때문에 이것은 작동하지 않습니다.
표준 입력에서 인수를 작성 xargs
하는 를 사용하십시오 . kill
예:
$ pgrep bash | xargs echo
5514 22298 23079
답변2
이것은 작동합니다:
pkill name
또한 매뉴얼 페이지를 읽는 것이 좋습니다.
답변3
구체적인 질문보다는 일반적인 질문에 답변해 드립니다.
파이프는 프로그램의 출력을 다음과 같이 전달하는 데 사용됩니다.입력하다다른 프로그램으로.
프로그램의 출력을 다음과 같이 사용하려는 것 같습니다.명령줄 매개변수다른 프로그램에서는 다릅니다.
이렇게 하려면 다음을 사용하세요.명령 대체.
예를 들어, 실행하려는 경우
sudo kill 5089 5105
pgrep name
출력하는 명령이 있습니다.5089 5105
당신은 그것들을 다음과 같이 합쳤습니다.
sudo kill $(pgrep name)