컴퓨터 그리드에서 물리적 분석 작업을 실행합니다. 때로는 일이 잘못되어 하나씩 없애야 하는데, 이는 고통스럽습니다. 이 출력에서 숫자 값(748736838 등)만 선택하는 방법을 제안해 주시겠습니까?
$ps -W
mhaque -748736838 0 W
mhaque -748736879 0 W
mhaque -748737079 0 W
mhaque -748737185 0 W
mhaque -748737276 0 W
(그리고 이와 같은 수백 줄)
sed
stackExchange에서 여러 //명령을 awk
시도 했지만 grep
숫자 값을 분리할 수 없습니다. 숫자값을 선택하고 그 앞에 "kill"을 붙이는 명령어가 있나요? 예를 들어 다음과 같습니다(파이프라인).
ps -W | awk/sed/grep (what_to_use) | (some_command to place "kill") | > file.list
그러면 다음이 제공됩니다(file.list에서).
kill 748736838
kill 748736879
...so on..
그런 다음 이를 그리드 셸에 복사하여 붙여넣으면 문제가 있거나 오래 대기하는 작업을 종료할 수 있습니다.
답변1
누군가를 죽이고 싶다면모두~의해킹작업이 더 쉬워졌습니다.
pkill -9 mhaque
(-9보낼 신호입니다. 이 경우에는 선택합니다.신호 살해, 귀하의 필요에 따라 변경하십시오).
반품,
pidof mhaque
작업 PID의 간단한 목록만 반환하며 그 외에는 아무것도 반환하지 않습니다. 다음과 같이 사용할 수도 있습니다.
kill -9 $(pidof mhaque)
첫 번째 명령과 동일한 효과를 생성합니다. 이 모든 것이 스크립트를 작성하는 것보다 훨씬 쉽습니다. 예를 들어,
$ vlc fulvio.mkv &> /dev/null &
[1] 28006
$ vlc fulvio.mkv &> /dev/null &
[2] 28028
$ pidof vlc
28028 28006
$ pkill -9 vlc
$ ps ax | grep vlc
28054 pts/18 S+ 0:00 grep --color=auto vlc
[1]- Killed vlc fulvio.mkv &> /dev/null
[2]+ Killed vlc fulvio.mkv &> /dev/null
편집하다:
의견에 포함된 설명에 따라 주문은
ps -W | awk '{print $2}' | cut -d"-" -f2
작업 PID의 간단한 목록을 생성합니다. 파일에 쓰거나 직접 처리할 수 있습니다.
kill -9 $(ps -W | awk '{print $2}' | cut -d"-" -f2)
편집 2
위의 명령은 단지 표준 Bash이기 때문에 이것이 예상대로 작동하지 않는다는 것에 조금 놀랐습니다. 어떤 시스템을 사용하고 있나요? 어쨌든 시도해 볼 수 있습니다.
for i in $(ps -W | awk '{print $2}' | cut -d"-" -f2); do kill -9 $i; done