xInOrK
Новичок
irc php bot, pcntl_fork, pcntl_signal
Имеется значит IRC бот написаный на PHP, ну тоесть подключаемся к IRC серверу и в вечном цикле читаем данные, процесс зафоркан. Есть такая проблема когда на IRC сервере случаются нетсплиты то бот просто выпадает с канала, поэтому решил сделать оживления бота при помощи pcntl_signal имея доступ к SSH сервера где бегает бот:
Так вот проблема в том что когда посылаю процессу команду: kill -s HUP pid ничего не происходит и error логе не видно "Error: SIGHUP signal sent...", при этом у бота есть возможность отдавать команды прямо с канала и когда использую eval() system("kill -s HUP pid") то бот как положено перезагружается и в error логе видно что послан SIGHUP.
Имеется значит IRC бот написаный на PHP, ну тоесть подключаемся к IRC серверу и в вечном цикле читаем данные, процесс зафоркан. Есть такая проблема когда на IRC сервере случаются нетсплиты то бот просто выпадает с канала, поэтому решил сделать оживления бота при помощи pcntl_signal имея доступ к SSH сервера где бегает бот:
PHP:
pcntl_signal(SIGHUP, "sig_handler");
function sig_handler($signo) {
global $bot;
switch ($signo) {
case SIGHUP:
trigger_error("Error: SIGHUP signal sent...", E_USER_ERROR);
$bot->reConnect();
break;
default:
trigger_error("Error: DEFAULT signal sent...", E_USER_ERROR);
}
}