From: Marc Joliet <marcec@gmx.de>
To: gentoo-amd64@lists.gentoo.org
Subject: Re: [gentoo-amd64] Systemd migration: opinion and questions
Date: Wed, 25 Feb 2015 19:25:08 +0100 [thread overview]
Message-ID: <20150225192508.30cb175a@marcec.fritz.box> (raw)
In-Reply-To: <CAGfcS_=0=80iA2OfiWz61YLw=qB3_nsu1DOTHLemOU=YPa1Cpw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3456 bytes --]
Am Wed, 25 Feb 2015 07:01:59 -0500
schrieb Rich Freeman <rich0@gentoo.org>:
> On Wed, Feb 25, 2015 at 2:50 AM, Marc Joliet <marcec@gmx.de> wrote:
> > Am Tue, 24 Feb 2015 16:44:59 -0500
> > schrieb Rich Freeman <rich0@gentoo.org>:
> >
> >> > === Timers ===
> >> >
> >> > Can a systemd timer depend on a mount point such that it waits until the mount
> >> > point exists before running? Or will it fail after a timeout? I want to
> >> > research this myself, but haven't gotten around to it yet.
> >>
> >> So, timer units are units, and units can have dependencies, and mounts
> >> can be dependencies since mounts are units. However, if you set the
> >> dependency on the timer itself, then the timer won't start running
> >> until the mount exists. You probably want the depencency to be on the
> >> service started by the timer (so the timer is watching the clock, but
> >> the service won't start without the mount).
> >
> > Wait, so the timer won't start watching the clock until its dependencies are
> > met (i.e, the mount point appears)? Is that what you mean? Because that might
> > be more in line with what I want (though I'm not sure yet).
>
> If you set the dependency on the timer, then the timer doesn't start
> watching the clock until they're met. If you set the dependency on
> the service started by the timer then it will watch the clock but not
> launch the service if the dependency isn't met. You can set the
> dependency in either or both places. The timer and the service are
> both units.
OK, I think I got it.
> >
> >> If you set a
> >> Requires=foo.mount and After=foo.mount, then the service shouldn't run
> >> unless foo.mount is available. I suspect systemd will attempt to
> >> mount the filesystem when it runs the service, and you'll get units in
> >> the failed state if that doesn't work.
> >>
> >> However, I haven't tested any of this. I suspect it wouldn't take
> >> much to work this out. I have a mount dependency in one of my
> >> services. Just look at the mount units in /run/systemd/generator for
> >> the name of the mount unit systemd is creating from fstab.
> >
> > Right, so IIUC, I would have a oneshot service that does the backup, and the timer
> > runs that, and of course the timer can depend on the mount point. And if the
> > mount point doesn't exist, then the service started by the timer will fail.
> >
> > What I would prefer to have is a timer that only runs if *both* the time *and*
> > mount conditions are met. Skimming the man page, this does not seem possible.
> > I suppose it would be nice if timers learned "conditions" on which they should
> > wait in addition to the time condition, but maybe that's outside the scope of
> > systemd?
>
> I think if you just set the dependency on the service you'll get the
> behavior you desire. Systemd will try to mount the backup filesystem,
> and if that fails it won't run the backup.
>
> You can set conditions on units as well, like only running if they're
> on AC power or on amd64 or to run one unit the first time you start a
> service and a different unit every other time. Some of that was
> designed to implement some of the stateless system features they're
> adding to systemd.
Right, I'll have a look at them.
Thanks
--
Marc Joliet
--
"People who think they know everything really annoy those of us who know we
don't" - Bjarne Stroustrup
[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-02-25 18:25 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-24 20:15 [gentoo-amd64] Systemd migration: opinion and questions Marc Joliet
2015-02-24 20:41 ` Randy Barlow
2015-02-24 23:11 ` Marc Joliet
2015-02-25 22:42 ` Marc Joliet
2015-02-27 22:29 ` Marc Joliet
2015-02-24 21:44 ` Rich Freeman
2015-02-25 7:50 ` Marc Joliet
2015-02-25 12:01 ` Rich Freeman
2015-02-25 18:25 ` Marc Joliet [this message]
2015-03-01 12:48 ` Marc Joliet
2015-03-01 13:34 ` Rich Freeman
2015-03-01 18:20 ` Marc Joliet
2015-03-01 19:13 ` Rich Freeman
2015-03-02 5:13 ` [gentoo-amd64] " Duncan
2015-03-14 14:01 ` Marc Joliet
2015-03-14 12:57 ` [gentoo-amd64] " Marc Joliet
2015-03-14 13:02 ` Marc Joliet
2015-02-25 10:13 ` [gentoo-amd64] " Duncan
2015-02-25 12:13 ` Rich Freeman
2015-02-26 0:35 ` Duncan
2015-02-25 18:56 ` Marc Joliet
2015-02-26 1:55 ` Duncan
2015-02-24 21:51 ` [gentoo-amd64] " Frank Peters
2015-02-25 14:31 ` Michael Mattes
2015-02-25 20:28 ` Marc Joliet
2015-02-25 10:15 ` [gentoo-amd64] " Duncan
2015-02-25 10:33 ` Duncan
2015-02-25 19:17 ` Marc Joliet
2015-02-25 19:31 ` Rich Freeman
2015-02-25 19:54 ` Marc Joliet
2015-02-25 22:30 ` [gentoo-amd64] " Marc Joliet
2015-05-20 8:01 ` Marc Joliet
2015-05-20 10:44 ` [gentoo-amd64] " Duncan
2015-05-20 11:22 ` Rich Freeman
2015-05-21 9:36 ` Duncan
2015-05-21 11:33 ` Marc Joliet
2015-05-23 8:49 ` Marc Joliet
2015-05-23 9:32 ` Marc Joliet
2015-05-23 10:41 ` Duncan
2015-05-23 11:11 ` Marc Joliet
2015-05-23 11:37 ` Rich Freeman
2015-05-23 12:02 ` Duncan
2015-05-23 18:07 ` Marc Joliet
2015-05-23 8:17 ` Duncan
2015-05-23 12:14 ` Duncan
2015-05-21 11:29 ` Marc Joliet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150225192508.30cb175a@marcec.fritz.box \
--to=marcec@gmx.de \
--cc=gentoo-amd64@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox