mata um processo em uma máquina remota quando a máquina está presa

5

Eu iniciei um processo muito consumidor de recursos em um servidor remoto via ssh. É um problema de otimização executado no MATLAB. Leva memória cheia e CPU. Na verdade, eu nem sou capaz de usar o ssh na máquina, o que não responde de forma alguma. Como eu mato esse processo? Eu não tenho acesso root.

    
por Alessandro Cosentino 29.11.2011 / 00:57

2 respostas

12

Se o usuário iniciou o processo e você só tem acesso remotamente, suas opções são limitadas.

Eu tentaria matar os processos remotamente. Isso pode levar algum tempo para ficar na fila!

ssh -l $USER $HOSTNAME 'pkill -9 MATLAB'

Se isso for executado, mas não matar o processo em execução. Você sempre pode matar todos os processos criados pelo seu usuário. este seria um último recurso, obviamente, evite se você souber o nome do processo.

ssh -l $USER $HOSTNAME 'pkill -9 -u $USER'

Se você tiver qualquer acesso KVM ou IPMI, este será o momento de eliminar isso.

    
por 29.11.2011 / 01:10
7

Se a máquina não reagir a qualquer solicitação de rede, você será escolhido. Por um simples processo de eliminação, se você não puder obter acesso remoto, precisará de acesso ao console.

Seja paciente. Se a máquina estiver trocando muito, pode levar alguns minutos para responder.

Para o futuro, mantenha uma sessão ssh aberta e tenha o ID do processo potencialmente problemático pronto. Todas as shells tradicionais têm o comando kill embutido, para que você possa eliminar um processo mesmo se a máquina estiver sob carga pesada ou se o usuário atingir o limite de processo.

Também para o futuro, você pode limitar os recursos que o processo do Matlab pode alocar executando o ulimit comando no shell onde você o inicia. Em particular, ulimit -Sv 42 limitará a quantidade total de memória virtual que qualquer processo pode alocar para 42kB (o limite se aplica a cada processo subsequentemente iniciado por esse shell).

    
por 29.11.2011 / 21:30

Tags