Как я могу проверить, запущен ли процесс Unix в Perl?

В UNIX я проверяю, запущен ли процесс, выполнив следующую команду;

Например.

psg dtllst pe99

Это возвращает следующий вывод, если процесс выполняется;

UID    PID    PPID    C    STIME    TTY    TIME CMD
pe99   1234   1       0 03:29:44    pts/8  0:01 dtllst pe99

Теперь в Perl я хочу узнать, запущен ли этот процесс или нет. Пока я делаю следующее

`my $checkProc = `psg dttlst | grep $myNode 2>&1`;`    #where $myNode is something like pe01 or pe02 or pe65 or pe99 etc...

Теперь, после этого, я делаю следующее, чтобы увидеть, вернула ли указанная выше команда Perl то, что я ищу, чтобы увидеть, запущен ли процесс;

if ($checkProc =~ m/dtllst $myNode | $myNode/) {
    #yes, process is up
} else {
    #no, process is down
}

Однако это не работает - в частности, независимо от того, является ли процесс UNIX живым или нет, мой код ВСЕГДА оценивает оператор if как true. Я знаю, что это неправильно. Я попытался экранировать символ "$5$quot; в регулярном выражении, чтобы увидеть, была ли это проблема, и я также попытался удалить переменные Perl из этого регулярного выражения.

Что мне здесь не хватает? Я знаю, что мое регулярное выражение где-то не так :(

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос