Forum Webscript.Ru

Программирование => Perl => Тема начата: cr4ck3r от 07 Июня 2006, 16:09:58

Название: Служба Windows на Perl
Отправлено: cr4ck3r от 07 Июня 2006, 16:09:58
Написал службу для windows, использовал PerlSvc для компиляции... Все работает хорошо и прекрасно (инсталиться, деинсталиться)... Если из консоли управления службами (mmc) запускаю ее - то все ок, но если нажимаю:"Остановить", то она не останавливается...
Кто-нибудь сталкивался с такими вещами?
Название: Служба Windows на Perl
Отправлено: BonJorno от 08 Июня 2006, 07:16:50
Когда-то писал службы, правда то было на делфи. У служб строго регламентированная структура, тоесть  набор жизненно необходимых процедур для управления службой. Т.о должна быть и процедура управляющая событием "Остановить". Обо всем этом широко размусолено на делфийских форумах.
Название: Служба Windows на Perl
Отправлено: cr4ck3r от 08 Июня 2006, 10:30:51
Мне кажеться я начинаю понимать в чем проблема...
Вот часть моего кода:

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)), то видимо из этого цикла выхода нет... Как обработать эту ситуацию пока не ясно...
Название: Re: Служба Windows на Perl
Отправлено: askinfra от 25 Мая 2020, 00:04:39
Друзья, вечер добрый.
Пожалуйста, порекомендуйте книжку, в которой в частности описано создание служб для Windows на языке perl5.