Программирование > Perl

Служба Windows на Perl

(1/1)

cr4ck3r:
Написал службу для windows, использовал PerlSvc для компиляции... Все работает хорошо и прекрасно (инсталиться, деинсталиться)... Если из консоли управления службами (mmc) запускаю ее - то все ок, но если нажимаю:"Остановить", то она не останавливается...
Кто-нибудь сталкивался с такими вещами?

BonJorno:
Когда-то писал службы, правда то было на делфи. У служб строго регламентированная структура, тоесть  набор жизненно необходимых процедур для управления службой. Т.о должна быть и процедура управляющая событием "Остановить". Обо всем этом широко размусолено на делфийских форумах.

cr4ck3r:
Мне кажеться я начинаю понимать в чем проблема...
Вот часть моего кода:

--- Код: ---
sub Startup {
## connect to database ##
while(ContinueRun()) {
my $dsn="driver={SQL Server};Server=$param->{\'SQL_HOST\'};database=$param->{\'DB_NAME\'};uid=$param->{\'DB_USER\'};pwd=$param->{\'DB_PASS\'};";
my $dbh=DBI->connect("dbi:ODBC:$dsn") || die "$DBI::errstr\\n";
### prepare socket ###
my $protocol=getprotobyname(\'tcp\');
my $host=inet_aton($param->{\'AV_HOST\'}) or die "$param->{AV_HOST}: unknown host";
socket(SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket() failed: $!\\n";
my $dest_addr=sockaddr_in($param->{\'AV_PORT\'},$host);
connect(SOCK,$dest_addr) or die "connect() failed: $!\\n";
SOCK->autoflush(1);

while() {
chomp();
insertDB($dbh,$_);
print "." unless (RunningAsService());
}
close(SOCK);
$dbh->disconnect();
}
}

--- Конец кода ---

функция Startup запускается сразу же после старта службы,
функция ContinueRun возвращает false, если служба получает команду Остановиться (STOP, SHUTDOWN и т.п)... но так как у меня идет далее еще один цикл (считывающий строки из сокета(порт тел. станции Avaya)), то видимо из этого цикла выхода нет... Как обработать эту ситуацию пока не ясно...

askinfra:
Друзья, вечер добрый.
Пожалуйста, порекомендуйте книжку, в которой в частности описано создание служб для Windows на языке perl5.

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии