특정 문자로 프로세스를 죽이는 스크립트


0

다음과 같이 출력되는 명령이 있습니다.

# lostjobs

user1   12983     1  0 Feb04 ?        00:00:00 dbr UT:msmenu
user1   18253     1  0 Feb09 ?        00:00:00 dbr UT:msmenu
user2   22337     1  0 Feb09 ?        00:00:00 dbr UT:msmenu
user3   7164   7123  0 06:52 pts/0    00:00:10 dbr UT:msmenu

나는 내가 원하는 것 (물음표가있는 것들)을 가지고 사람들을 붙잡을 수 있다는 것을 안다 :

# lostjobs | grep ?

내가 알아야 할 것은 어떻게 두 번째 결과를 반복하여 id (두 번째 열)로 죽일 수 있는가이다. 나는 리눅스 용 스크립트를 작성하는 데별로 좋지 않으므로 나에게 쉽게 간다.

어떤 도움을 주셔서 감사합니다.

답변:


0

해결책은 다음과 같습니다.

kill `lostjobs | awk '{ if ( $6 == "?" ) print $2 }'`

그게 전부를 죽일거야?
Toby Joiner

그러면 다음이 실행됩니다. kill 12983 18253 22337. 명령의 접두사를 사용해보십시오. echo 미리보기를 볼 수 있습니다.
cYrus

좋아, 사용자를 죽이려면, -9를 사용해야한다. 그래서 나는 kill -9`lostjobs |를 할 수 있다고 가정한다.
Toby Joiner

물론, 원하는 옵션을 추가하십시오. kill.
cYrus

0

이것은 또한 작동해야합니다 :

kill -9 `lostjobs | grep ? | awk {'print $2'}`
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.