|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Evstifeev 2:5004/16.30 02 Apr 2004 13:45:24 To : citrin@icn.bmstu.ru Subject : блокировак повторного запуска -------------------------------------------------------------------------------- Thursday April 01 2004 00:02, Anton V. Yuzhaninov НН. All: AY> Есть скрипт, который работат в фонов режиме, и постоянно висит в памяти. AY> Как сделать блокировку ,чтоб если один процесс запущен нельзя было AY> запустить его еще раз. Вот такой длинный, но достаточно надежный путь... === Cut === sub another_copy { my ($progname, $pid, $ps); $progname = $0; return 0 if ! -f "/tmp/maket.pid"; die "$!: /tmp/maket.pid" unless open PID, "/tmp/maket.pid"; $pid = <PID>; unless close PID; $pid += 0; return 0 if $$ == $pid; ($ps) = grep { /\b$pid\b/ } `ps -edf`; return 0 if ! defined $ps; exit if $ps =~ /\Q$progname\E/; return 0; } === Cut === Александр Евстифеев e-mail: fox@bkb-omsk.com --- * Origin: Жизнь проста, когда ждешь выстрелов с той стороны. (2:5004/16.30) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3269406d6fe7.html, оценка из 5, голосов 10
|