Ssh newbie: como posso garantir que um programa que estou executando através do ssh tenha terminado?

0

Pedimos desculpas pelo que provavelmente é uma pergunta simples. Eu tenho algumas perguntas básicas sobre o uso do ssh para executar programas que não posso resolver por meio do Google. Estou usando o Unix (através do programa "Terminal" no Mac OS 10.6.7).

Estou acessando uma máquina diferente usando o ssh. Uma vez lá, estou executando algum código. Isso resulta em arquivos de saída em um diretório nessa máquina. Termino uma corrida fazendo "controle C." Eu me livrei dos arquivos de saída fazendo:

find . -type f -name "*.vtk" -exec rm -f {} \;

O problema é que:

  1. A pessoa cuja máquina é informada há várias versões do meu código em execução. Eu não entendo como eu não estou parando estes fazendo "controle C." Alguém pode explicar?

  2. Além disso (isso pode estar relacionado ao primeiro problema), quando eu executo o comando "find" acima para me livrar dos arquivos de saída, se eu esperar alguns segundos / minutos, alguns arquivos de saída apareceram novamente ! Isso pode estar relacionado às versões "fantasmas" do código em execução, que não posso finalizar?

Se alguém poderia me dizer como ter certeza de que terminei TODAS as execuções e como me livrar de TODOS os arquivos de saída vtk (ou outro sufixo) de um diretório, eu realmente agradeceria. Além disso, quaisquer sugestões sobre recursos on-line sobre todas essas coisas ssh seriam muito bem-vindas. Muito obrigado.

    
por Ant 30.04.2011 / 13:13

1 resposta

1

Se você não usar ferramentas como screen , todos os seus programas em execução serão encerrados assim que você sair da sua sessão ssh. Além disso, Ctrl + C terminará o processo de primeiro plano em execução no momento. Caso você tenha iniciado alguns processos em segundo plano (com & no final de seu comando ou Ctrl + z, bg , você pode torná-los processos de primeiro plano digitando fg .

O programa ps permite que você veja os programas atualmente em execução. Lá você deve ver qualquer 'instâncias ainda em execução'. Você pode finalizá-los usando kill -9 <PID> ou killall -9 <prog-name> .

    
por 30.04.2011 / 13:20

Tags