Это не так. pid файл вы размещаете в директории /var/run/. Я у себя также делаю, но при запуске второго экземпляра, я проверяю содержимое /var/run/pid, а затем ищу папку в каталоге /proc
если скрипт даже упадет то из папки /proc каталог с его пиром удалится автоматом, средствами linux.
а в скрипте pid файл удалится при последующем запуске
die "[FAILED] Не удается удалить файл блокировки $pid_f\n" if ( !unlink $pid_f );
unless( -e "/proc/$pid" )
{
die "[FAILED] Не удается удалить файл блокировки $pid_f\n" if ( !unlink $pid_f );
}
else
{
die «Процесс уже запущен. Процесс с pid=$pid\n»;
}
Два оператора осуществляют межоператорский стык, договариваются о цене приземления трафика на своего абонента. Т.е. если я оператор, то когда мой абонент совершает вызов на абонента другого оператора, то я как оператор плачу определенную сумму за каждую минуту которая проходит через наш с ним стык. Другой оператор платит мне на тех же условиях. В конце расчетного периода операторы связи сверяют трафик и тот кто должен больше перечисляет разницу партнеру.
если скрипт даже упадет то из папки /proc каталог с его пиром удалится автоматом, средствами linux.
а в скрипте pid файл удалится при последующем запуске
die "[FAILED] Не удается удалить файл блокировки $pid_f\n" if ( !unlink $pid_f );
можете использовать, там есть блокировка двойного запуска процесса
search.cpan.org/~lagutas/Logic-Tools-0.02/lib/Logic/Tools.pod
проверяю вот так
unless( -e "/proc/$pid" )
{
die "[FAILED] Не удается удалить файл блокировки $pid_f\n" if ( !unlink $pid_f );
}
else
{
die «Процесс уже запущен. Процесс с pid=$pid\n»;
}