mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
daemons: Support --timeout 0
When using systemd we want to take advantage of socket activation instead of keeping daemons running all the time, so we default to shutting them down after two minutes of inactivity. At the same time, we want it to be possible for the admin to opt out of this behavior and disable timeouts entirely. A very natural way to do so would be to specify a zero-length timeout, but that's currently not accepted by the command line parser. Address that. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
9428c4609c
commit
a1c793ec57
@ -872,7 +872,7 @@ int main(int argc, char **argv) {
|
||||
int pid_file_fd = -1;
|
||||
char *sock_file = NULL;
|
||||
char *admin_sock_file = NULL;
|
||||
int timeout = -1; /* -t: Shutdown timeout */
|
||||
int timeout = 0; /* -t: Shutdown timeout */
|
||||
char *state_file = NULL;
|
||||
bool implicit_conf = false;
|
||||
mode_t old_umask;
|
||||
@ -922,7 +922,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
case 't':
|
||||
if (virStrToLong_i(optarg, &tmp, 10, &timeout) != 0
|
||||
|| timeout <= 0
|
||||
|| timeout < 0
|
||||
/* Ensure that we can multiply by 1000 without overflowing. */
|
||||
|| timeout > INT_MAX / 1000) {
|
||||
VIR_ERROR(_("Invalid value for timeout"));
|
||||
@ -1123,7 +1123,7 @@ int main(int argc, char **argv) {
|
||||
adminSrv = virNetDaemonGetServer(lockDaemon->dmn, "admin");
|
||||
}
|
||||
|
||||
if (timeout != -1) {
|
||||
if (timeout > 0) {
|
||||
VIR_DEBUG("Registering shutdown timeout %d", timeout);
|
||||
virNetDaemonAutoShutdown(lockDaemon->dmn,
|
||||
timeout);
|
||||
|
@ -653,7 +653,7 @@ int main(int argc, char **argv) {
|
||||
int pid_file_fd = -1;
|
||||
char *sock_file = NULL;
|
||||
char *admin_sock_file = NULL;
|
||||
int timeout = -1; /* -t: Shutdown timeout */
|
||||
int timeout = 0; /* -t: Shutdown timeout */
|
||||
char *state_file = NULL;
|
||||
bool implicit_conf = false;
|
||||
mode_t old_umask;
|
||||
@ -703,7 +703,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
case 't':
|
||||
if (virStrToLong_i(optarg, &tmp, 10, &timeout) != 0
|
||||
|| timeout <= 0
|
||||
|| timeout < 0
|
||||
/* Ensure that we can multiply by 1000 without overflowing. */
|
||||
|| timeout > INT_MAX / 1000) {
|
||||
VIR_ERROR(_("Invalid value for timeout"));
|
||||
@ -905,7 +905,7 @@ int main(int argc, char **argv) {
|
||||
adminSrv = virNetDaemonGetServer(logDaemon->dmn, "admin");
|
||||
}
|
||||
|
||||
if (timeout != -1) {
|
||||
if (timeout > 0) {
|
||||
VIR_DEBUG("Registering shutdown timeout %d", timeout);
|
||||
virNetDaemonAutoShutdown(logDaemon->dmn,
|
||||
timeout);
|
||||
|
@ -770,7 +770,7 @@ int main(int argc, char **argv) {
|
||||
char *sock_file = NULL;
|
||||
char *sock_file_ro = NULL;
|
||||
char *sock_file_adm = NULL;
|
||||
int timeout = -1; /* -t: Shutdown timeout */
|
||||
int timeout = 0; /* -t: Shutdown timeout */
|
||||
int verbose = 0;
|
||||
int godaemon = 0;
|
||||
#ifdef WITH_IP
|
||||
@ -844,7 +844,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
case 't':
|
||||
if (virStrToLong_i(optarg, &tmp, 10, &timeout) != 0
|
||||
|| timeout <= 0
|
||||
|| timeout < 0
|
||||
/* Ensure that we can multiply by 1000 without overflowing. */
|
||||
|| timeout > INT_MAX / 1000) {
|
||||
VIR_ERROR(_("Invalid value for timeout"));
|
||||
@ -1107,7 +1107,7 @@ int main(int argc, char **argv) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (timeout != -1) {
|
||||
if (timeout > 0) {
|
||||
VIR_DEBUG("Registering shutdown timeout %d", timeout);
|
||||
virNetDaemonAutoShutdown(dmn, timeout);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user