Encerrando um processo atrelado a outro via taskkill no Prompt de Comando

Às vezes é necessário encerrar um processo no Windows, e algumas vezes esse processo tem filhos (childs), como encerrar nesse caso?


Algumas vezes um processo acaba ficando atrelado a outro, ou até mesmo com subprocessos. Por exemplo, para quem utiliza Protheus, se o usuário manda imprimir via Servidor, ele cria um subprocesso, e isso acaba às vezes travando o serviço na hora de parar ou reiniciar.

Então se tentarmos encerrar o processo via taskkill, mesmo com o /F de forçar, ele vai mostrar a seguinte mensagem:

ERROR: The process with PID [...] could not be terminated.
Reason: There is no running instance of the task

E como resolver nesse caso? Ao usar o taskkill, além do /F, utilizar o /T que encerra a árvore de processos geradas por esse PID. O comando então ficaria assim:

taskkill -pid [...] /F /T

Referências:

stackoverflow.com

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Endrinho disse:

    eu preciso escrever um Scriptbat, que realize as seguintes funções :

    – Faça uma BUSCA: No seguinte diretório: E:\arquivos
    – Busque Dentro de E:\arquivos, por arquivos do tipo:

    *.zip

    Encontrando os arquivos ZIP, Pesquise Dentro de cada
    Arquivo ZIP, buscando encontrar a seguinte extensão :

    *.EXE

    (( DETALHANDO: o script tem que pesquisar dentro de arquivos zip
    ( USO AQUI O PPROGRAMA WINRAR ) só pra constar !
    pois oque eu quero vai estar la dentro como explicado acima.))

    Apos PESQUISAR DENTRO DE CADA ARQUIVO ZIPADO ( podem ser 5000 arquivos )
    por exemplo ! pesquisando então dentro de cada arquivo dos 5000 do exemplo

    E encontrando a extensão *.exe, em um ou outro arquivo, quero que o script copie
    Todos os arquivos encontrados com extensões *.exe para uma pasta dentino
    pasta está E:\encontrados

    feito tudo isso, quero ainda que o script Emita uma mensagem :

    informando que o trabalho foi realizado

    passei quase 1 més tentando escrever este script , E NÃÕ CONSGUI
    Agora venho aqui pedir uma ajuda pra quem entende disso ….

    Agradeceria de coração a quem puder tá me dando essa força

    Endel Neiva

    um exemplo de como o script que eu escrevi tá me retornando :

    for /r “%search_dir%” %%b in (*.cht) do ( set “achados=%%~nxb
    echo Achados:::::=^>!achados! )

    Achados:::::=>Rat Attack (USA, Europe) (GameShark).cht
    Achados:::::=>RC de Go (Japan) (Xploder).cht
    Achados:::::=>RC de Go (World) (Game Buster).cht
    Achados:::::=>RC de Go (World) (GameShark).cht
    Achados:::::=>Sabrina the Teenage Witch – A Twitch in Time (USA, Europe) (GameShark).cht
    Achados:::::=>Smurf Racer (USA) (GameShark).cht
    Achados:::::=>Spyro 2 – Ripto’s Rage (USA) (GameShark).cht
    Achados:::::=>Superstar Dance Club – -1 Hits (USA, Europe) (GameShark).cht
    Achados:::::=>Tiny Toon Adventures – Toonenstein – Dare to Scare (USA, Europe) (GameShark).cht
    Achados:::::=>Tomba (USA) (GameShark).cht
    Achados:::::=>Tomba 2 – The Evil Swine Return (USA) (GameShark).cht
    Achados:::::=>Top Gun – Fire at Will (World) (GameShark).cht
    Achados:::::=>WWF SmackDown 2 – Know Your Role (USA, Europe) (GameShark).cht
    Achados:::::=>Yu-Gi-Oh Forbidden Memories (USA) (GameShark).cht
    Achados:::::=>Zoboomafoo – Leapin’ Lemurs (USA) (GameShark).cht

    agora eu preciso fazer com que o script NUMERE CADA ARQUIVO PARA MIM
    E ao final me dê o total , total de quantos arquivos foram encontrados

    EX:

    Achados:::::=>[1]- Rat Attack (USA, Europe) (GameShark).cht
    Achados:::::=>[2]- RC de Go (Japan) (Xploder).cht
    Achados:::::=>[3]- Tomba (USA) (GameShark).cht

    Total de Arquivos Encontrados = 3 Arquivos

    não sei escrever para que o script enumere , ajuda por favor ?

Deixe uma resposta

Terminal de Informação