]> git.proxmox.com Git - pve-manager.git/blame - PVE/Service/pvedaemon.pm
use new libpve-http-server-perl package
[pve-manager.git] / PVE / Service / pvedaemon.pm
CommitLineData
ab4ae3dc
DM
1package PVE::Service::pvedaemon;
2
3use strict;
4use warnings;
5
6use PVE::SafeSyslog;
7use PVE::Daemon;
8use PVE::API2;
b996e6c0
DM
9use PVE::APIServer::Formatter::Standard;
10use PVE::APIServer::Formatter::HTML;
ab4ae3dc
DM
11use PVE::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('pvedaemon', $cmdline, %daemon_options);
25
26sub init {
27 my ($self) = @_;
28
29 my $accept_lock_fn = "/var/lock/pvedaemon.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 base_handler_class => 'PVE::API2',
38 keep_alive => 100,
39 max_conn => 500,
40 max_requests => 1000,
41 lockfile => $accept_lock_fn,
42 socket => $socket,
43 lockfh => $lockfh,
44 debug => $self->{debug},
45 trusted_env => 1,
46 };
47}
48
49sub run {
50 my ($self) = @_;
51
52 my $server = PVE::HTTPServer->new(%{$self->{server_config}});
53 $server->run();
54}
55
56$daemon->register_start_command();
57$daemon->register_restart_command(1);
58$daemon->register_stop_command();
59$daemon->register_status_command();
60
61our $cmddef = {
62 start => [ __PACKAGE__, 'start', []],
63 restart => [ __PACKAGE__, 'restart', []],
64 stop => [ __PACKAGE__, 'stop', []],
65 status => [ __PACKAGE__, 'status', [], undef, sub { print shift . "\n";} ],
66};
67
681;