O método atual e terrivelmente falho que uso é:
tasklist /FI "WINDOWTITLE eq BLABLABLA" /NH
A parte BLABLABLA acima é o título exato do processo atual. (Nem me fale sobre o fato de que ele não recebe suas próprias cotações e, portanto, não pode ser escapado/protegido facilmente/corretamente.)
O problema com isso é que assim que o título do processo difere em apenas um caractere, ele é considerado um script diferente de acordo com esta lógica. Por exemplo, tenho todos os tipos de dicas úteis adicionadas ao título da janela/processo o tempo todo, como:
Actual title (5 seconds left...)
E:
[FINISHED] Actual title
E:
Actual title (4 / 9 items left)
E:
Actual title (35% downloaded)
E assim por diante. Você entendeu. O título do processo muda frequentemente, por isso não é confiável para verificar o script exclusivo.
A única outra maneira que encontrei é referir-se a algo que eles chamam de "IMAGENAME" (que aparentemente significa "nome executável"):
tasklist /FI "IMAGENAME eq php.exe" ...
Isto é claropior aindajá que apenas listará qualquer script php.exe!
Minha experiência com o comando "lista de tarefas" (usando a saída --verbose e lendo seu manual) não revela nenhuma menção ao caminho do arquivo ou a qualquer ID exclusivo por arquivo ou algo parecido.
Por que não pode me deixar fazer algo assim?
tasklist /FI "FILEPATH eq BLABLABLA" /NH
?
Pensei em acompanhar os scripts em execução no banco de dados, mas parece terrivelmente ineficiente e também não confiável quando as coisas não saem exatamente como planejado e outros enfeites. Definitivamente seria melhor usar um comando fornecido pelo sistema operacional (a menos que o PHP tenha isso embutido, afinal).
Eu sei que o filtro "eq" aceita um asteriscona extremidade direita, mas isso não me ajuda pelos motivos acima.
Eurealmentenão tenho outra escolha a não ser sentar e analisar a saída completa da lista de tarefas e tentar remover quaisquer partes "dinâmicas" dos títulos dos processos para que eu possa contar o número de scripts em execução com o "mesmo" título do processo que o script que executa o código? Parece incrivelmente hackeado e estúpido. Istonão podeseja o caminho certo...
(PS: Você sabe, eu fico perplexo continuamente sobre quantas coisas e recursos "óbvios" (apenas para mim, aparentemente) estão faltando. É a mesma coisa no Windows e no Linux. Coisas que considero o "mínimo" é de alguma forma considerado supérfluo/inútil por todos os outros. Isso realmente me faz pensar...)
Responder1
Você pode refinar os resultados usando:
tasklist /fi "imagename eq php.exe" /v | find /i "Actual title"