Executei vários processos de treinamento de ANN em várias screen
sessões. Quando entro em uma tela, vejo um processo de treinamento em execução.
Agora, quero matar um processo específico dentro da tela sem matar a tela.
Eu posso pressionar CTRL + C
. Mas, isso produz algum texto de lixo indesejado na tela.
Como posso fazer isso de forma limpa?
Se eu tentar matar o processo usando o ID do processo, fico confuso. Para mim, é impossível reconhecer processos individuais. Coz, eles estão executando arquivos com os mesmos nomes de arquivo.
Como fazer isso?
NB estou usando TensorFlow e Keras.
NB # 2, estou usando SSH.
Se você conseguir fazer ssh no host remoto (a única tela em execução), poderá modificar meu script de uma pergunta semelhante que eu tive que fornecer o pid do processo e depois matá-lo.
Ctrl+a N
fará com que ela apareça por alguns segundos no canto inferior esquerdo da janela.Nota: Isso é segure Ctrl, pressione a, solte Ctrl, então N maiúsculo
screen -ls
Nota: você deve salvar o script em um arquivo e torná-lo executável [
chmod +x <script-name>
] antes de executá-lo [./<script-name> <window-number>
])kill <pid-from-first-column-that-script-returned>
(substituindo os colchetes pelo pid real retornado pelo script)O roteiro modificado:
Cada tela tem um pid que você pode obter do nome da tela (
pid.tty.host
oupid.sessionname
). Se todos os processos são locais (ou seja, se você não se conectou da sessão de tela ao host remoto viassh
, por exemplo), é fácil ver os filhos da tela usando:Então você pode encontrar o pid do processo e matá-lo.