2021-05-28 Fred Gleason <fredg@paravelsystems.com>

* Added an '--force-system-maintenance' switch to rdservice(8).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2021-05-28 16:13:44 -04:00
parent 728551467e
commit 1fd9b4637b
4 changed files with 14 additions and 8 deletions

View File

@@ -21730,3 +21730,5 @@
* Added an '--initial-maintenance' switch to rdservice(8). * Added an '--initial-maintenance' switch to rdservice(8).
2021-05-28 Fred Gleason <fredg@paravelsystems.com> 2021-05-28 Fred Gleason <fredg@paravelsystems.com>
* Added an 'RDProcess::prettyCommandString()' method. * Added an 'RDProcess::prettyCommandString()' method.
2021-05-28 Fred Gleason <fredg@paravelsystems.com>
* Added an '--force-system-maintenance' switch to rdservice(8).

View File

@@ -77,8 +77,9 @@ void MainObject::checkMaintData()
// //
// Run the routines // Run the routines
// //
if(run) { if(run||svc_force_system_maintenance) {
RunSystemMaintRoutine(); RunSystemMaintRoutine();
svc_force_system_maintenance=false;
} }
} }

View File

@@ -61,6 +61,7 @@ MainObject::MainObject(QObject *parent)
bool ok=false; bool ok=false;
svc_startup_target=MainObject::TargetAll; svc_startup_target=MainObject::TargetAll;
svc_force_system_maintenance=false;
// //
// Check for prior instance // Check for prior instance
@@ -91,6 +92,10 @@ MainObject::MainObject(QObject *parent)
svc_startup_target=target; svc_startup_target=target;
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
} }
if(rda->cmdSwitch()->key(i)=="--force-system-maintenance") {
svc_force_system_maintenance=true;
rda->cmdSwitch()->setProcessed(i,true);
}
if(rda->cmdSwitch()->key(i)=="--initial-maintenance-interval") { if(rda->cmdSwitch()->key(i)=="--initial-maintenance-interval") {
initial_maintenance_interval=rda->cmdSwitch()->value(i).toInt(&ok); initial_maintenance_interval=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
@@ -158,20 +163,17 @@ void MainObject::processFinishedData(int id)
RDProcess *proc=svc_processes.value(id); RDProcess *proc=svc_processes.value(id);
if(proc->process()->exitStatus()!=QProcess::NormalExit) { if(proc->process()->exitStatus()!=QProcess::NormalExit) {
rda->syslog(LOG_WARNING,"process \"%s\" crashed!", rda->syslog(LOG_WARNING,"process \"%s\" crashed!",
(proc->program()+" "+proc->arguments().join(" ").trimmed()). proc->prettyCommandString().toUtf8().constData());
toUtf8().constData());
} }
else { else {
if(proc->process()->exitCode()!=0) { if(proc->process()->exitCode()!=0) {
rda->syslog(LOG_WARNING,"process \"%s\" exited with exit code %d", rda->syslog(LOG_WARNING,"process \"%s\" exited with exit code %d",
(proc->program()+" "+proc->arguments().join(" ").trimmed()). proc->prettyCommandString().toUtf8().constData(),
toUtf8().constData(),
proc->process()->exitCode()); proc->process()->exitCode());
} }
else { else {
rda->syslog(LOG_DEBUG,"process \"%s\" exited normally", rda->syslog(LOG_DEBUG,"process \"%s\" exited normally",
(proc->program()+" "+proc->arguments().join(" ").trimmed()). proc->prettyCommandString().toUtf8().constData());
toUtf8().constData());
} }
} }
svc_processes.remove(id); svc_processes.remove(id);

View File

@@ -2,7 +2,7 @@
// //
// Rivendell Services Manager // Rivendell Services Manager
// //
// (C) Copyright 2018-2020 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2018-2021 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as // it under the terms of the GNU General Public License version 2 as
@@ -71,6 +71,7 @@ class MainObject : public QObject
QTimer *svc_maint_timer; QTimer *svc_maint_timer;
QTimer *svc_exit_timer; QTimer *svc_exit_timer;
StartupTarget svc_startup_target; StartupTarget svc_startup_target;
bool svc_force_system_maintenance;
}; };