- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Hi!
Уважаемые web кодеры подскажите нормальный мануал по использованию функции fork() в perl...
Если можно то пару своих примеров.
пасиба ;)
В принципе, сам не использую.
Но вот Вам пример, достаточно наглядный (как по мне).
use strict;
use POSIX ":sys_wait_h";
my $PidFile = "/var/run/<твой пид>.pid"; # PID-файл (идентификатор процесса)
my $RefreshInterval = 10;
Daemonize();
sub Process {
#Комманды демонизированного процесса
}
sub Daemonize {
# При живом демоне не запускаемся
if (TestMinion()){
print "xxx is already running\n\n";
exit(1);
}
my $NPId = fork(); # ! ВЕТВИМСЯ !
if ($NPId){ # Родитель
print "My pid is: ", $$, "\n";
print "Daemon pid is: ", $NPId, "\n";
open(FH, "+>" . $PidFile); # PID процесса - потомка
print FH $NPId;
close(FH);
exit(0); # Выходим
} else { # Демон
POSIX::setsid(); # Отваливаем
# Обработчики сигналов
$SIG{'INT'} = "IGNORE";
$SIG{'HUP'} = "IGNORE";
$SIG{'TERM'} = \&SigTERM;
$SIG{'CHLD'} = "IGNORE";
for (;;){
Process();
sleep($RefreshInterval); # Спим
}
}
}
sub SigTERM {
unlink($PidFile);
exit(0);
}
#
# Проверка наличия процесса в памяти
#
sub TestMinion{
my $NStatus = 0;
if (-f $PidFile){ # Если есть такой pid файл
open(FH, "<" . $PidFile); # Читаем pid
my $NRootPId = <FH>;
close(FH);
if ($NRootPId) { # Если есть pid
if (kill(0, $NRootPId)) { $NStatus = 1; # Если процесс жив
} else { unlink($PidFile); } # иначе - стираем файл
}
}
return $NStatus
}
Правка. в коде - рожица это точка с запятой и скобка.
большое спасибо