diff options
Diffstat (limited to 'install/restart_scripts/restart_pkicad')
-rw-r--r-- | install/restart_scripts/restart_pkicad | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/install/restart_scripts/restart_pkicad b/install/restart_scripts/restart_pkicad index 0b6040a9d..a58c3f31e 100644 --- a/install/restart_scripts/restart_pkicad +++ b/install/restart_scripts/restart_pkicad @@ -35,8 +35,16 @@ configured_constants = dogtag.configured_constants(api) alias_dir = configured_constants.ALIAS_DIR dogtag_instance = configured_constants.PKI_INSTANCE_NAME -syslog.syslog(syslog.LOG_NOTICE, "certmonger restarted %sd, nickname '%s'" % - (dogtag_instance, nickname)) +# dogtag opens its NSS database in read/write mode so we need it +# shut down so certmonger can open it read/write mode. This avoids +# database corruption. It should already be stopped by the pre-command +# but lets be sure. +if ipaservices.knownservices.pki_cad.is_running(dogtag_instance): + try: + ipaservices.knownservices.pki_cad.stop(dogtag_instance) + except Exception, e: + syslog.syslog(syslog.LOG_ERR, "Cannot stop %sd: %s" % + (dogtag_instance, str(e))) # Fix permissions on the audit cert if we're updating it if nickname == 'auditSigningCert cert-pki-ca': @@ -48,10 +56,13 @@ if nickname == 'auditSigningCert cert-pki-ca': db.run_certutil(args) try: - # I've seen times where systemd restart does not actually restart - # the process. A full stop/start is required. This works around that - ipaservices.knownservices.pki_cad.stop(dogtag_instance) - ipaservices.knownservices.pki_cad.start(dogtag_instance) + if configured_constants.DOGTAG_VERSION == 9: + ipaservices.knownservices.pki_cad.start(dogtag_instance) + else: + ipaservices.knownservices.pki_tomcatd.start(dogtag_instance) except Exception, e: - syslog.syslog(syslog.LOG_ERR, "Cannot restart %sd: %s" % + syslog.syslog(syslog.LOG_ERR, "Cannot start %sd: %s" % (dogtag_instance, str(e))) +else: + syslog.syslog(syslog.LOG_NOTICE, "certmonger started %sd, nickname '%s'" % + (dogtag_instance, nickname)) |