Melhor maneira de matar processos em uma lista

0

Eu tenho este script zsh. Existe uma maneira mais graciosa de fazer isso?

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 
}
    
por justingordon 03.05.2015 / 04:07

2 respostas

3

Você pode usar xargs para separá-los e executar killall para cada um:

echo $PROCESSES_TO_QUIT | xargs killall -9

    
por 03.05.2015 / 07:26
1

Talvez tente killall :

% export PROCESSES_TO_QUIT='puma rake ...'
% export KILL_SIGNAL='killall -9 '
% eval $KILL_SIGNAL $PROCESSES_TO_QUIT
    
por 03.05.2015 / 06:27

Tags