- 论坛徽章:
- 0
|
给你个例子
package PerlSvc;
our %Config;
sub Startup {
while (ContinueRun()) {
$local_addr=pack('SnC4x8', 2, 32080, 127,0,0,1);
socket(FILE_TRANS_SERV, 2, 1, getprotobyname('tcp')) or die("socket failed for $!");
bind(FILE_TRANS_SERV, $local_addr) or die("bind failed for $!");
listen(FILE_TRANS_SERV,3);
$remote_addr = '';
for(; $remote_addr=accept(FILE_TRANS_CLIENT,FILE_TRANS_SERV); close(FILE_TRANS_CLIENT)){
$in = <FILE_TRANS_CLIENT>;
while (<FILE_TRANS_CLIENT>) {}
if ($in =~ 'shutdown') {
close(FILE_TRANS_CLIENT); close(FILE_TRANS_SERV);
system "shutdown -s -t 0";
}
}
close(FILE_TRANS_SERV);
}
}
sub Pause { }
sub Continue { }
sub Interactive { }
sub Help { }
sub Install {
$Config{ServiceName} = 'MyShutdownService';
$Config{DisplayName} = 'My Shutdown Service';
}
sub Remove {
$Config{ServiceName} = 'MyShutdownService';
}
package main;
1;
|
|
|