LINUX.ORG.RU

perl и процессы


0

0

Как на perl, зная номер процесса, отпределить есть ли он в системе, т.е. работает и еще не завершлся?
Спасибо!!!

anonymous

> Как на perl, зная номер процесса, отпределить есть ли он в системе, т.е. работает и еще не завершлся?

Точно так же, как и на других языках - послать процессу сигнал с
номером 0 и посмотреть на код возврата. Подробности смотри в
man 2 kill ну или для Perl в perldoc -f kill

BTW успешный тест не гарантирует, что это "тот самый процесс" -
теоретически это может быть уже другой процесс, повторно использующий
тот же самый PID.

HTH

Onanim
()
Ответ на: комментарий от Mrak

> perl -e '$pid=1234; $a=`ps -A|grep $pid`; print "Running\n\n" if(length($a)!=0);'

Никада так не делайте! К плохому привыкнете, трудно будет потом. Вообще, на время работы программы, ей бы неплохо держать какой-то файл залоченным, тогда для проверки того, что программа запущена надо проверить наличие залочки на файле (только не надо для этого из программы на perl запускать fuser!). Про kill уже рассказали.

Casus ★★★★★
()
Ответ на: комментарий от Onanim

> BTW успешный тест не гарантирует, что это "тот самый процесс"...


Легко проверить...
$ perl -le 'print readlink "/proc/$$/exe"'
/usr/bin/perl

Casus ★★★★★
()
Ответ на: комментарий от Casus

> К плохому привыкнете, трудно будет потом.

Не пойму почему это

1. Плохо

2. Потом это когда? Когда негрософт купит linux? Такого не будет уверяю Вас ;)

ЗЫ: К сожалению есть проги которые не создают файл на время своей работы :(

Mrak ★★★
()
Ответ на: комментарий от Mrak

1. Использование внешнего grep, при наличии встроенного у perl. Вызов ps при наличии номера процесса.

2. На этом пути есть рэйсы, поверьте мне, хотя заметны они только когда процессов становится заметное количество, работа ps может стать не очень адекватной. ps -- инструмент администрирования, а не утилита для программиста, использование его не по назначению ведёт к полю с граблями.

3. Речь, как я понимаю, идёт не об абстрактной "проге", а о каком-то демоне, стандартном или самописном. Стандартные демоны "грешат" залоченными файлами, самописного научить не долго.

Casus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.