연속적으로 제출한 job들을 한 방에 죽이기 [seq] by 바죠


연속적으로 제출한 job들을 동시에 죽여야 하는 경우가 발생한다.

왜 이런일이 일어날까?

정신 놓고 계산을 하다 보면, 입력을 잘못 넣었다는 것을 알게 된다. 굉장히 많은 계산을 동시에 실행시켰는데, 그 모두가 원하지 않는 계산이 된 것을 알아차렸다. 그렇다면 하나 하나 죽여야 할까?

대단히 귀찮은 일이다. 이 또한 정신 없이 죽이다 보면, 잘 돌아가는 계산도 죽이게 된다. 재앙이 재앙을 부르게 된다.

가장 간단한 방법은 seq 명령어를 사용하는 방법이다.
Job ID를 확인하여 연속적으로 제출한 job들을 한방에 죽인다. 
 
seq -s ' ' 1  222


seq -s" " 200 210
200 201 202 203 204 205 206 207 208 209 210

qdel 위에 출력물을 캡쳐
 qdel  200 201 202 203 204 205 206 207 208 209 210

리눅스에서는 200, 210 같은 숫자는 각각 마우스를 두 번 클릭하여 캡쳐할 수 있다.

중간에 다른 사람의 job이 있다. 절대로 당신이 다른 사람의 job을 죽일 수 없다.
다만, 나의 다른 job이 있을 지 모른다. 이것만 주의 하면된다.

------------------------------------------------------------------------------------------------------------------
qdel `seq 123 156`
------------------------------------------------------------------------------------------------------------------

jobname 에서 특정한 문자열을 가지고 있는 자신의 job 을 죽이는 방법:

qstat -a|grep SiC18 |awk '{split($0,a,"."); print "qdel ", a[1]}' |sh -x
----------------------------------------------------------
foreach num (`seq -s" " 41 42`)
ssh c${num} ps -ef | grep mm_tinker | awk '{print $2}' | xargs kill -9
end
----------------------------------------------------------
ps -ef | grep remd_tinker | awk '{print $2}' | xargs kill -9
ps -ef | grep sp | awk '{print $2}' | xargs kill -9
----------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------
좀비 프로세스들을 죽이는 방법:
병렬계산의 경우, 좀비들의 수가 한 개가 아니다. 여러개이다. 따라서 죽이는데 시간이 오래 걸린다.
예를 들어, pestat 같은 명령어로 확인한 결과, 좀비 계산들이 널려있다는 것을 확인했다.
그렇다면, 그 많은 좀비들을 어떻게 죽여야 잘 죽였다고 소문날까?

예를 들어 좀비 job 이름이 mm_tinker라고 하면

 ps -ef | grep mm_tinker | awk '{print $2}' | xargs kill -9

외워서 하기에는 대단히 어렵다. awk도 잘 모를 경우 더더욱 그렇다.
이러한 스크립트틀을 홈 디렉토리 파일 속에 보관해 두고 사용하면 된다.
--------------------------------------------------------------------------------------------------------------------

foreach num (`seq -s" " 41 42`)
ssh c${num} ps -ef | grep mm_tinker | awk '{print $2}' | xargs kill -9
end

--------------------------------------------------------------------------------------------------------------------


우선 명령어 seq를 알아야 한다.  
man seq
 seq - print a sequence of numbers


 seq 222 225
222
223
224
225

seq -f "input%04g" 3
input0001
input0002
input0003

 seq -f "input%04g.in" 3
input0001.in
input0002.in
input0003.in

 seq -w 88 90
88
89
90

http://www.youtube.com/watch?v=JHQnnlFGt_E&feature=player_detailpage


--------------------------------------------------------------------------------------------------------------------


man awk
 gawk - pattern scanning and processing language

http://www.youtube.com/watch?v=az6vd0tGhJI&feature=player_detailpage
http://www.youtube.com/watch?v=DKylmQ2MB_Y&feature=player_detailpage
http://www.youtube.com/watch?v=fCw-xf31M_s&feature=player_detailpage


--------------------------------------------------------------------------------------------------------------------


number=1
while [ $number -le 25 ]; do
    tmp="POSCAR.$number"
    cp $tmp POSCAR
mpirun_intel /usr/local/vasp4us_INTEL/vasp.5.2.12_11NOV2011_GRAPE.O3.MPIBLOCK1000.mpi.x  > stdout.log
    tmq="out.$number"
    cp OUTCAR  $tmq
    number=$((number + 1))
done

--------------------------------------------------------------------------------------------------------------------


--------------------------------------------------------------------------------------------------------------------
 ps -u ihlee|awk '/vasp/ {print "kill -9 " $1}' | sh -x

 ps -u ihlee|awk '/vasp/ {print "kill -9 " $1}'
kill -9 820
kill -9 821
kill -9 822
kill -9 823
kill -9 824
kill -9 825
kill -9 826
kill -9 827
[ihlee@xb005 ~]$ ps -u ihlee
  PID TTY          TIME CMD
  792 ?        00:00:00 pmi_proxy
  820 ?        06:56:22 vasp.5.2.12_GRA
  821 ?        06:56:14 vasp.5.2.12_GRA
  822 ?        06:56:19 vasp.5.2.12_GRA
  823 ?        06:56:22 vasp.5.2.12_GRA
  824 ?        06:56:22 vasp.5.2.12_GRA
  825 ?        06:56:11 vasp.5.2.12_GRA
  826 ?        06:56:22 vasp.5.2.12_GRA
  827 ?        06:56:22 vasp.5.2.12_GRA
  847 pts/0    00:00:00 bash
  904 pts/0    00:00:00 ps
[ihlee@xb005 ~]$ ps -u ihlee|awk '/vasp/ {print "kill -9 " $1}' | sh -x
+ kill -9 820
+ kill -9 821
+ kill -9 822
+ kill -9 823
+ kill -9 824
+ kill -9 825
+ kill -9 826
+ kill -9 827
[ihlee@xb005 ~]$ ps -u ihlee
  PID TTY          TIME CMD
  847 pts/0    00:00:00 bash
  908 pts/0    00:00:00 ps
--------------------------------------------------------------------------------------------------------------------
 kill -9  7166; rm 7166 ; qstat -a |grep BP18|awk '{split($0,a,"."); print "qdel ",a[1]}'|sh -x
+ qdel 131521
+ qdel 131682
+ qdel 131723
+ qdel 131768
+ qdel 131781
+ qdel 131792
+ qdel 131799
+ qdel 131801
+ qdel 131850
+ qdel 131861
+ qdel 131864
+ qdel 131867
+ qdel 131873
+ qdel 131877
+ qdel 131885
+ qdel 131886
+ qdel 131890
+ qdel 131893
+ qdel 131894
+ qdel 131898
+ qdel 131899
+ qdel 131900
+ qdel 131906
+ qdel 131907
+ qdel 131909
+ qdel 131917
+ qdel 131920
+ qdel 131922
+ qdel 131925
+ qdel 131929
+ qdel 131930
+ qdel 131931
+ qdel 131932
+ qdel 131935
+ qdel 131936
+ qdel 131938
+ qdel 131939
+ qdel 131942
+ qdel 131944
+ qdel 131949
+ qdel 131953
+ qdel 131954
+ qdel 131955
+ qdel 131956
+ qdel 131958
+ qdel 131961
+ qdel 131963
+ qdel 131965
+ qdel 131968
+ qdel 131970
[2]+  Killed                  nohup nice /home/ihlee/csa_vasp/csa_vasp.x < csa.in &>csa.out
--------------------------------------------------------------------------------------------------------------------
qstat -a|grep ADMD|awk '{split($0,a," "); print "scancel ", a[1]}'| sh -x      : to delete the jobs
qstat -a|grep ADMD|awk '{split($0,a," "); print "qhold ", a[1]}'| sh -x     : to hold the jobs
qstat -a|grep ADMD|awk '{split($0,a," "); print "qrls ", a[1]}'| sh -x      : to release the jobs
echo ./0???/ | xargs -n 1 cp ADMD_SOLDIER.pbs                               : multiple copies

--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------

덧글

  • 2013/12/01 10:38 # 답글 비공개

    비공개 덧글입니다.
  • 2013/12/01 10:56 # 답글 비공개

    비공개 덧글입니다.
  • 2013/12/02 15:41 # 삭제 답글

    와.. 좋은정보 감사합니다
  • 바죠 2015/03/17 15:05 # 삭제 답글

    qdel `seq 123 156`


  • 바죠 2015/07/07 08:31 # 삭제 답글

    foreach num (`seq -s" " 41 42`)
    ssh c${num} ps -ef | grep prgram_name | awk '{print $2}' | xargs kill -9
    end

    c41, c42
  • 바죠 2016/02/20 19:03 # 삭제 답글

    kill -9 29861; rm 29861; qstat -a|grep SiC18 |awk '{split($0,a,"."); print "qdel ", a[1]}' |sh -x
댓글 입력 영역

최근 포토로그



MathJax