목록의 프로세스를 종료하는 가장 좋은 방법

목록의 프로세스를 종료하는 가장 좋은 방법

이 zsh 스크립트가 있습니다. 이를 수행하는 더 우아한 방법이 있습니까?

export PROCESSES_TO_QUIT='puma rake sidekiq spring rails ruby-debug phantomjs zeus passenger guard resque "node server.js"'

pgr() {
  echo "Finding processes in list: $PROCESSES_TO_QUIT"  
  for x in `echo ${PROCESSES_TO_QUIT}`; do 
    pgrep -fl $x;
  done 
}

pgk() {
  echo "Killing processes in list: $PROCESSES_TO_QUIT"  
  for x in `echo ${PROCESSES_TO_QUIT}`; do 
    pkill -fl $x;
  done 
}

pgkk() {
  echo "Killing -9 processes in list: $PROCESSES_TO_QUIT"  
  for x in `echo ${PROCESSES_TO_QUIT}`; do 
    pkill -9 -fl $x;
  done 
}

답변1

이를 사용하여 xargs분리하고 killall각각에 대해 실행할 수 있습니다.

echo $PROCESSES_TO_QUIT | xargs killall -9

답변2

어쩌면 시도해보십시오 killall:

% export PROCESSES_TO_QUIT='puma rake ...'
% export KILL_SIGNAL='killall -9 '
% eval $KILL_SIGNAL $PROCESSES_TO_QUIT

관련 정보