Como posso verificar se um processo Unix está em execução no Perl?
No UNIX, estou verificando se há um processo executando o seguinte comando;
Por exemplo.
psg dtllst pe99
Isso retorna a seguinte saída se o processo estiver em execução;
UID PID PPID C STIME TTY TIME CMD
pe99 1234 1 0 03:29:44 pts/8 0:01 dtllst pe99
Agora em Perl, eu quero descobrir se esse processo está funcionando ou não. Até agora eu estou fazendo o seguinte
`my $checkProc = `psg dttlst | grep $myNode 2>&1`;` #where $myNode is something like pe01 or pe02 or pe65 or pe99 etc...
Agora, depois disso, faço o seguinte para ver se o comando Perl acima retornou o que estou procurando para ver se o processo está encerrado;
if ($checkProc =~ m/dtllst $myNode | $myNode/) {
#yes, process is up
} else {
#no, process is down
}
No entanto, isso não está funcionando - especificamente, independentemente de o processo UNIX estar ativo ou não, meu código SEMPRE avalia a instrução if como verdadeira. Eu sei que isso está errado. Tentei escapar do caractere "$5$quot; no regex para ver se esse era o problema e também tentei remover as variáveis Perl de dentro do regex.
O que estou perdendo aqui? Eu sei que meu regex está errado em algum lugar :(
obrigado