[systemd-devel] (solved) Re: How to chain services driven by a timer?
Dan Nicholson
dbn at endlessos.org
Thu Apr 18 15:23:29 UTC 2024
On Thu, Apr 18, 2024 at 8:12 AM Brian Reichert <reichert at numachi.com> wrote:
>
> On Wed, Apr 17, 2024 at 03:03:16PM -0600, Dan Nicholson wrote:
> > I assume that this is just a script that does some post-processing on
> > log files. In that case, I suggest that you use Type=oneshot with
> > RemainAfterExit=no (the default). Then the service will actually wait
> > until your script completes. Type=simple is expected to be used for a
> > service that doesn't exit under normal conditions.
>
> Thanks for the additional feedback; I don't see the harm in trying.
>
> How, forensically, would I see the difference between 'simple' and
> 'oneshot', in my use case here?
Since you likely don't have any units that depend on your service it
likely doesn't make a big difference. To demonstrate, here's a stupid
service I created:
# cat /etc/systemd/system/foo.service
[Service]
Type=oneshot
ExecStart=/bin/echo foo
With Type=oneshot, the journal output looks like this:
Apr 17 15:02:50 endless systemd[1]: Starting foo.service...
Apr 17 15:02:50 endless echo[5390]: foo
Apr 17 15:02:50 endless systemd[1]: foo.service: Deactivated successfully.
Apr 17 15:02:50 endless systemd[1]: Finished foo.service.
With Type=simple, the journal output looks like this:
Apr 17 14:55:23 endless systemd[1]: Started foo.service.
Apr 17 14:55:23 endless echo[4482]: foo
Apr 17 14:55:23 endless systemd[1]: foo.service: Deactivated successfully.
Notice that in the oneshot case it doesn't reach Finished until after
Deactivated. In the simple case, it immediately goes into Started. If
I had a unit with After=foo.service, it would be started before
foo.service actually did anything if it had Type=simple.
Of more interest to you is logrotate.service, which is Type=oneshot.
If it was Type=simple, your unit would be started before the logrotate
command completed, which is probably not what you want.
More information about the systemd-devel
mailing list