[systemd-devel] Temporarily stopping a service while oneshot is running
Lennart Poettering
lennart at poettering.net
Thu Mar 30 14:13:25 UTC 2017
On Tue, 21.03.17 07:47, Ian Pilcher (arequipeno at gmail.com) wrote:
> I have a oneshot service (run from a timer) that updates the TLS
> certificates in my mod_nss database. Because NSS doesn't support
> concurrent access to the database, I need to temporarily shut down
> Apache while the certificate update service is running.
>
> Currently, I'm using the following entries in my .service file to
> accomplish this:
>
> [Unit]
> Description=Update TLS certificates in mod_nss database
> # Restart Apache, even if this service fails for some reason
> OnFailure=httpd.service
>
> [Service]
> Type=oneshot
> # Shut down Apache to avoid concurrent access to the mod_nss database
> ExecStartPre=/usr/bin/systemctl stop httpd.service
> ExecStart=/usr/local/bin/update-nss-certs
> ExecStartPost=/usr/bin/systemctl start httpd.service
>
> Is this the best way to do this? (I can't escape the feeling that there
> ought to be a more idiomatic way of accomplishing this.)
Yes, this appears to be the best, and simplest way to do this to me.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list