Script para finalizar um processo de um usuário apenas [RESOLVIDO]

1. Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Jean de Sousa
jeanzinrj

(usa Debian)

Enviado em 27/10/2014 - 14:37h

Salve comunidade,

estou a semanas quebrando a cabeça para resolver uma questão.


gerencio uma aplicação em java na qual cada cliente abre um processo de execução no servidor como mostrado abaixo:

31014 central 17 0 735m 161m 19m S 12.9 0.5 1:30.70 java
25721 cetrio_0 17 0 738m 270m 20m S 7.9 0.9 1:40.32 java
7843 optrio 25 0 2433m 989m 21m S 4.3 3.2 625:06.59 java
25888 tomasvel 17 0 701m 175m 17m S 0.0 0.6 0:11.01 java

estou querendo criar um script para colocar no crontab para determinar o tempo que cada usuário fica logado na aplicação.

pesquisei e achei o comando:

killall -u NOME_DO_USUARIO >>>> porém esse comando fecha dos os processos do usuário. esse não é o objetivo.

pkill NOME_DO_PROCESSO >>> Também não serve, pois fecharia para todos os usuários.


alguém tem ideia ou script que faça isso.

abraço




  


2. MELHOR RESPOSTA

Renan Arantes
R3nan

(usa Debian)

Enviado em 28/10/2014 - 11:29h

jeanzinrj escreveu:

O problema que toda vez que eu fechar o processo o PID vai mudar.

é como vou criar um script para rodar no crontab de tempos em tempos.

toda vez que fechar, quando abrir novamente o PID vai ser outro porém vai ser o mesmo usuário, ao qual eu quero finalizar vai ser o mesmo.



fiz um pequeno script de exemplo que vc pode por no seu cron, como exemplo a aplicação eu usei o gedit no filtro do grep, e o meu usuario, vc deve substiui-los, pela sua aplicação e pelo nome do seu usuario. ok

no caso do script exemplo ele finalizaria o gedit aberto pelo meu usuario.

segue abaixo

#!/bin/bash
filtro=$(ps aux | grep renan | grep gedit | grep -v grep | awk '{print $2}')
kill -9 $filtro


3. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 27/10/2014 - 15:07h

Só trocar nome_do_processo pelo PID do processo após o pkill

pkill 123456

OU

kill 123456



4. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Jean de Sousa
jeanzinrj

(usa Debian)

Enviado em 28/10/2014 - 09:58h

O problema que toda vez que eu fechar o processo o PID vai mudar.

é como vou criar um script para rodar no crontab de tempos em tempos.

toda vez que fechar, quando abrir novamente o PID vai ser outro porém vai ser o mesmo usuário, ao qual eu quero finalizar vai ser o mesmo.




5. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Jean de Sousa
jeanzinrj

(usa Debian)

Enviado em 28/10/2014 - 15:22h

R3nan,
Obrigado pela ajuda funcionou perfeitamente.

eu cheguei a pensar nessa forma do script, só faltou acertar o comando. É o comando awk, eu enrolo todo com ele. ainda não me entendi com ele...

grande abraço!!!

R3nan escreveu:

jeanzinrj escreveu:

O problema que toda vez que eu fechar o processo o PID vai mudar.

é como vou criar um script para rodar no crontab de tempos em tempos.

toda vez que fechar, quando abrir novamente o PID vai ser outro porém vai ser o mesmo usuário, ao qual eu quero finalizar vai ser o mesmo.



fiz um pequeno script de exemplo que vc pode por no seu cron, como exemplo a aplicação eu usei o gedit no filtro do grep, e o meu usuario, vc deve substiui-los, pela sua aplicação e pelo nome do seu usuario. ok

no caso do script exemplo ele finalizaria o gedit aberto pelo meu usuario.

segue abaixo

#!/bin/bash
filtro=$(ps aux | grep renan | grep gedit | grep -v grep | awk '{print $2}')
kill -9 $filtro





6. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 28/10/2014 - 17:33h

otimo! que bom que ajudou.
Ate +


7. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/10/2014 - 17:54h

Com o pgrep simplifica.


#!/bin/bash
filtro=$(ps aux | grep renan | pgrep gedit)
kill -9 $filtro



8. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 28/10/2014 - 18:04h

amarildosertorio escreveu:

Com o pgrep simplifica.


#!/bin/bash
filtro=$(ps aux | grep renan | pgrep gedit)
kill -9 $filtro


legal o pgrep reduziu o filtro, nao conhecia o pgrep...


9. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/10/2014 - 18:09h

Sempre utilizo o pgrep.

Esse controle deveria ser a nível da aplicação.


10. Re: Script para finalizar um processo de um usuário apenas [RESOLVIDO]

Jean de Sousa
jeanzinrj

(usa Debian)

Enviado em 10/11/2014 - 10:37h

Amarildo,

No meu caso o pgrep não se aplica. porque ele trás todos os números dos processos abertos pelo usuário.

Como eu deixei num script que fecha o processo (java) em tempo determinado, ele vai fechar todo os outros processos que estiverem abertos pelo usuário.

Mais achei interessante o comando. eu achei ele quando estava pesquisando.

valeu a dica.

amarildosertorio escreveu:

Com o pgrep simplifica.


#!/bin/bash
filtro=$(ps aux | grep renan | pgrep gedit)
kill -9 $filtro