pgrep을 kill과 연결할 수 있습니까?


31

|첫 번째 명령의 결과를 다른 명령으로 보내는 데 사용되는 것으로 나타났습니다 . 이름과 일치하는 모든 프로세스를 종료하고 싶습니다.
이것이 pgrep이 일반적으로하는 일입니다.

$ pgrep name
5089
5105

그리고 여러 가지 주장이 작동하는 것 같습니다 kill.

sudo kill 5089 5105

그러나 이것은 잘못되었습니다.

pgrep name | kill

어떻게 제대로해야합니까?


3
pkill. 그리고 그것이 존재하지 않는다면, kill $(pgrep ...).
Mikel

나는 그 특정 명령으로 인해뿐만 아니라 명령 체인에 대해 더 잘 이해하기 위해 묻고있었습니다. 그러나 질문 점수에서 알 수 있듯이 이해하기 쉬운 질문은 환영받지 못합니다 ...
Tomáš Zato-Reinstate Monica

질문을 좀 더 일반적인 것으로 만들고 중복되지 않도록하려면 투표를하겠습니다.
Mikel

죄송합니다. 실수로 이전 댓글을 삭제했습니다. 저는 태블릿을 사용하고 있으며이 사이트에는 서로 작은 버튼이 있습니다.
Mikel

나는 당신의 질문이 당신이 배울 수 없었던 것을 요구하지 않는 것처럼 보이기 때문에 하향 조정되었다고 말하고있었습니다 man pgrep. downvote 버튼은 질문이 연구 노력을 보이지 않을 때를위한 것이며 귀하의 질문에서 아무것도 볼 수 없음을 나타냅니다. 가혹한 것 같으면 미안합니다.
Mikel

답변:


42

이 시도:

pgrep name | xargs kill

를 사용하는 pgrep name | kill경우의 출력은의 pgrep name표준 입력으로 피드됩니다 kill. 때문에 kill이 작동하지 않습니다, 그래서 표준 입력에서 인수를 읽지 않습니다.

를 사용하면 stdin에서 xargs인수를 빌드 kill합니다. 예:

$ pgrep bash | xargs echo
5514 22298 23079

5
공간 대 줄 바꿈과는 아무런 관련이 없습니다. kill은 stdin에서 인수를 읽지 않기 때문입니다.
Mikel

@Mikel : 나의 실수는 고쳐졌다.
cuonglm


5

구체적이지 않고 일반적인 것에 대답하기 위해 ...

파이프는 한 프로그램의 출력을 입력 으로 다른 프로그램 에 전달하기위한 것 입니다.

한 프로그램의 출력 을 다른 프로그램의 명령 줄 인수 로 사용하려고하는 것처럼 보입니다 .

그렇게하려면 명령 대체를 사용하십시오 .

예를 들어 실행하려는 경우

sudo kill 5089 5105

그리고 당신은 명령 pgrep name을 출력5089 5105

당신은 그들을 같이 모아

sudo kill $(pgrep name)

고마워 나는 이것이 다른 초보자들에게도 도움이되기를 바랍니다.
Tomáš Zato-복직 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.