]> git.proxmox.com Git - pmg-api.git/blame - PMG/Service/pmgdaemon.pm
PMG/RuleDB/Notify.pm: allow to use wide UTF-8 characters
[pmg-api.git] / PMG / Service / pmgdaemon.pm
CommitLineData
972e1adf
DM
1package PMG::Service::pmgdaemon;
2
3use strict;
4use warnings;
5
6use PVE::SafeSyslog;
7use PVE::Daemon;
8use PMG::API2;
9use PVE::APIServer::Formatter::Standard;
10use PVE::APIServer::Formatter::HTML;
11use PMG::HTTPServer;
12
13use base qw(PVE::Daemon);
14
15my $cmdline = [$0, @ARGV];
16
17my %daemon_options = (
18 max_workers => 3,
19 restart_on_error => 5,
20 stop_wait_time => 15,
21 leave_children_open_on_reload => 1,
22);
23
24my $daemon = __PACKAGE__->new('pmgdaemon', $cmdline, %daemon_options);
25
26sub init {
27 my ($self) = @_;
28
29 my $accept_lock_fn = "/var/lock/pmgdaemon.lck";
30
31 my $lockfh = IO::File->new(">>${accept_lock_fn}") ||
32 die "unable to open lock file '${accept_lock_fn}' - $!\n";
33
34 my $socket = $self->create_reusable_socket(85, '127.0.0.1');
35
36 $self->{server_config} = {
37 title => 'PMG API Daemon',
2ec2c08a 38 cookie_name => 'PMGAuthCookie',
972e1adf
DM
39 keep_alive => 100,
40 max_conn => 500,
41 max_requests => 1000,
42 lockfile => $accept_lock_fn,
43 socket => $socket,
44 lockfh => $lockfh,
45 debug => $self->{debug},
46 trusted_env => 1,
47 };
48}
49
50sub run {
51 my ($self) = @_;
52
53 my $server = PMG::HTTPServer->new(%{$self->{server_config}});
54 $server->run();
55}
56
57$daemon->register_start_command();
58$daemon->register_restart_command(1);
59$daemon->register_stop_command();
60$daemon->register_status_command();
61
62our $cmddef = {
63 start => [ __PACKAGE__, 'start', []],
64 restart => [ __PACKAGE__, 'restart', []],
65 stop => [ __PACKAGE__, 'stop', []],
66 status => [ __PACKAGE__, 'status', [], undef, sub { print shift . "\n";} ],
67};
68
691;