Criando um script de shell que analisa e redireciona o número para o próximo comando?

1

Estou tentando criar um script que elimine um processo Xorg.

Aqui está um exemplo de eu executando os comandos em um terminal:

  • Primeiro, eu encontro o id do processo do programa Xorg (neste caso, 2494 ):

.

lucas@lucas-ThinkPad-W520:~$ ps ax  | grep Xorg 
 2494 ?        Ss     6:53 Xorg :8 -config /etc/bumblebee/xorg.conf.nvidia -configdir /etc/bumblebee/xorg.conf.d -sharevts -nolisten tcp -noreset -verbose 3 -isolateDevice PCI:01:00:0 -modulepath /usr/lib/nvidia-331/xorg,/usr/lib/xorg/modules
 4247 pts/1    S+     0:00 grep --color=auto Xorg
  • Então eu quero matar o processo do Xorg:

.

lucas@lucas-ThinkPad-W520:~$ sudo kill -15 2494

Como posso envolver essa funcionalidade em um script? Basicamente, obtenha o 2494 e insira-o como um argumento no comando sudo kill -15 .

    
por modulitos 02.03.2014 / 13:35

2 respostas

2

Note que já existe um comando que faz o que você quer fazer: killall -15 Xorg .

Você também pode fazer kill -15 $(pidof Xorg) .

Para o seu script, você pode usar ps aux | grep Xorg | grep -v grep | awk '{print $2}' como sugerido por @Adionditsak ou ps ax | grep Xorg | grep -v grep | awk '{print $1}' (sem a opção 'u' em ps ).

    
por 02.03.2014 / 13:55
2

Obtenha o PID do processo na linha 2 ( awk '{print $2}' ) e defina em uma variável. Então mate-o. Algo assim?

xorg_process=$(ps aux | grep 'Xorg' | awk '{print $2}')
kill -15 $xorg_process
    
por 02.03.2014 / 13:51