Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pve-manager
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
pve-manager
Commits
5c173cc1
Commit
5c173cc1
authored
Jan 01, 2015
by
Dietmar Maurer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pvedaemon: use PVE::Daemon
parent
fd2c4d25
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
112 deletions
+60
-112
Makefile
bin/Makefile
+3
-0
pvedaemon
bin/init.d/pvedaemon
+7
-17
pvedaemon
bin/pvedaemon
+50
-95
No files found.
bin/Makefile
View file @
5c173cc1
...
...
@@ -46,6 +46,9 @@ all: ${MANS} pvemailforward
pvestatd.1.pod
:
pvestatd
perl
-I
.. ./pvestatd printmanpod
>
$@
pvedaemon.1.pod
:
pvedaemon
perl
-I
..
-T
./pvedaemon printmanpod
>
$@
pveproxy.1.pod
:
pveproxy
perl
-I
..
-T
./pveproxy printmanpod
>
$@
...
...
bin/init.d/pvedaemon
View file @
5c173cc1
...
...
@@ -25,33 +25,23 @@ export LC_ALL="C"
case
"
$1
"
in
start
)
log_daemon_msg
"Starting
$DESC
"
"
$NAME
"
start-stop-daemon
--start
--quiet
--pidfile
$PIDFILE
--exec
$DAEMON
$DAEMON
start
log_end_msg
$?
;;
stop
)
log_daemon_msg
"Stopping
$DESC
"
"
$NAME
"
start-stop-daemon
--stop
--quiet
--retry
TERM/2/TERM/15/KILL/2
--pidfile
$PIDFILE
$DAEMON
stop
log_end_msg
$?
;;
reload
)
log_daemon_msg
"Reloading
$DESC
"
"
$NAME
"
if
(
[
-e
$PIDFILE
]
&&
kill
-0
`
cat
$PIDFILE
`
)
then
start-stop-daemon
--stop
--signal
HUP
--pidfile
$PIDFILE
else
start-stop-daemon
--start
--quiet
--pidfile
$PIDFILE
--exec
$DAEMON
fi
log_end_msg
$?
;;
restart|force-reload
)
restart|reload|force-reload
)
log_daemon_msg
"Restarting
$DESC
"
"
$NAME
"
start-stop-daemon
--stop
--quiet
--retry
TERM/2/TERM/15/KILL/2
--pidfile
$PIDFILE
sleep
2
start-stop-daemon
--start
--quiet
--pidfile
$PIDFILE
--exec
$DAEMON
log_end_msg
$?
$DAEMON
restart
log_end_msg
$?
;;
*
)
N
=
/etc/init.d/
$NAME
echo
"Usage:
$N
{start|stop|restart|force-reload}"
echo
"Usage:
$N
{start|stop|restart|
reload|
force-reload}"
exit
1
;;
esac
...
...
bin/pvedaemon
View file @
5c173cc1
...
...
@@ -6,109 +6,83 @@ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
use
strict
;
use
warnings
;
use
Getopt::
Long
;
use
POSIX
"
:sys_wait_h
";
use
Socket
;
use
PVE::
SafeSyslog
;
use
PVE::
API
Daemon
;
use
PVE::
Daemon
;
use
PVE::
API2
;
use
PVE::API2::Formatter::
Standard
;
use
PVE::API2::Formatter::
HTML
;
my
$pidfile
=
"
/var/run/pvedaemon.pid
";
my
$lockfile
=
"
/var/lock/pvedaemon.lck
";
my
$opt_debug
;
initlog
('
pvedaemon
');
if
(
!
GetOptions
('
debug
'
=>
\
$opt_debug
))
{
die
"
usage: $0 [--debug]
\n
";
}
use
base
qw(PVE::Daemon)
;
$SIG
{'
__WARN__
'}
=
sub
{
my
$err
=
$@
;
my
$t
=
$_
[
0
];
chomp
$t
;
syslog
('
warning
',
"
WARNING: %s
",
$t
);
print
STDERR
"
$t
\n
";
syslog
('
warning
',
"
%s
",
$t
);
$@
=
$err
;
};
$0
=
"
pvedaemon
";
my
$cmdline
=
[
$0
,
@ARGV
];
my
%
daemon_options
=
(
max_workers
=>
3
,
restart_on_error
=>
5
,
stop_wait_time
=>
15
,
leave_children_open_on_reload
=>
1
,
);
# create dir for dtach sockets
mkdir
"
/var/run/dtach
";
my
$cpid
;
my
$daemon
;
eval
{
$daemon
=
PVE::
APIDaemon
->
new
(
base_handler_class
=>
'
PVE::API2
',
host
=>
"
127.0.0.1
",
port
=>
85
,
trusted_env
=>
1
,
# partly trusted, because only local programs can connect
lockfile
=>
$lockfile
,
debug
=>
$opt_debug
,
keep_alive
=>
100
,
max_conn
=>
500
,
max_requests
=>
1000
);
};
my
$err
=
$@
;
if
(
$err
)
{
syslog
('
err
'
,
"
unable to start server:
$err
");
print
STDERR
$err
;
exit
(
-
1
);
}
if
(
$opt_debug
||
!
(
$cpid
=
fork
()))
{
my
$daemon
=
__PACKAGE__
->
new
('
pvedaemon
',
$cmdline
,
%
daemon_options
);
$SIG
{
PIPE
}
=
'
IGNORE
';
$SIG
{
INT
}
=
'
IGNORE
'
if
!
$opt_debug
;
sub
init
{
my
(
$self
)
=
@_
;
$SIG
{
TERM
}
=
$SIG
{
QUIT
}
=
sub
{
syslog
('
info
'
,
"
server closing
");
my
$accept_lock_fn
=
"
/var/lock/pvedaemon.lck
";
$SIG
{
INT
}
=
'
DEFAULT
';
my
$lockfh
=
IO::
File
->
new
("
>>
${accept_lock_fn}
")
||
die
"
unable to open lock file '
${accept_lock_fn}
' - $!
\n
";
unlink
"
$pidfile
"
;
my
$socket
=
$self
->
create_reusable_socket
(
85
,
'
127.0.0.1
')
;
exit
(
0
);
$self
->
{
server_config
}
=
{
base_handler_class
=>
'
PVE::API2
',
keep_alive
=>
100
,
max_conn
=>
500
,
max_requests
=>
1000
,
lockfile
=>
$accept_lock_fn
,
socket
=>
$socket
,
lockfh
=>
$lockfh
,
debug
=>
$self
->
{
debug
},
trusted_env
=>
1
,
};
}
syslog
('
info
'
,
"
starting server
");
if
(
!
$opt_debug
)
{
# redirect STDIN/STDOUT/SDTERR to /dev/null
open
STDIN
,
'
</dev/null
'
||
die
"
can't read /dev/null [$!]
";
open
STDOUT
,
'
>/dev/null
'
||
die
"
can't write /dev/null [$!]
";
open
STDERR
,
'
>&STDOUT
'
||
die
"
can't open STDERR to STDOUT [$!]
";
}
sub
run
{
my
(
$self
)
=
@_
;
POSIX::
setsid
();
my
$server
=
PVE::
HTTPServer
->
new
(
%
{
$self
->
{
server_config
}});
$server
->
run
();
}
system
("
echo > /var/lib/pve-manager/vmops
");
# init vmops file
$daemon
->
register_start_command
();
$daemon
->
register_restart_command
(
1
);
$daemon
->
register_stop_command
();
$daemon
->
register_status_command
();
eval
{
$daemon
->
start_server
();
};
my
$err
=
$@
;
my
$cmddef
=
{
start
=>
[
__PACKAGE__
,
'
start
',
[]
],
restart
=>
[
__PACKAGE__
,
'
restart
',
[]
],
stop
=>
[
__PACKAGE__
,
'
stop
',
[]
],
status
=>
[
__PACKAGE__
,
'
status
',
[]
,
undef
,
sub
{
print
shift
.
"
\n
";}
],
};
if
(
$err
)
{
syslog
('
err
'
,
"
unexpected server error:
$err
");
print
STDERR
$err
if
$opt_debug
;
exit
(
-
1
);
}
my
$cmd
=
shift
;
}
else
{
open
(
PIDFILE
,
"
>
$pidfile
")
||
die
"
cant write '
$pidfile
' - $! :ERROR
";
print
PIDFILE
"
$cpid
\n
";
close
(
PIDFILE
)
||
die
"
cant write '
$pidfile
' - $! :ERROR
";
}
PVE::CLIHandler::
handle_cmd
(
$cmddef
,
$0
,
$cmd
,
\
@ARGV
,
undef
,
$0
);
exit
(
0
);
...
...
@@ -118,9 +92,7 @@ __END__
pvedaemon - the PVE configuration server
=head1 SYNOPSIS
pvedaemon [--debug]
=include synopsis
=head1 DESCRIPTION
...
...
@@ -128,21 +100,4 @@ All configuration is done using this Server. The Server only
listens to a local address 127.0.0.1 port 85 for security
reasons.
=head1 COPYRIGHT AND DISCLAIMER
Copyright (C) 2007-2013 Proxmox Server Solutions GmbH
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/>.
=include pve_copyright
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment