[HEADS-UP] systemd for F14 - the next steps

Lennart Poettering mzerqung at 0pointer.de
Thu Jul 22 23:25:23 UTC 2010


On Thu, 22.07.10 17:51, Horst H. von Brand (vonbrand at inf.utfsm.cl) wrote:

> > Kay and I have discussed this now. We agreed to fold systemd-install
> > into systemctl entirely, and replace --realize by --now. Also, we'll
> > drop some of the options --realize had, and always imply that the init
> > system configuration shall be reloaded after all changes took
> > place. This basically means that this
> > is what will be done in %post in the general case:
> > 
> > if [ $1 -eq 1 ] ; then
> >      systemctl enable foo.service
> > else
> >      systemctl daemon-reload
> 
> Huh? One you have to tell about the affected service, the other not?

Yes, because we reload init system configuration globally, not
partially. This otherwise creates all kind of messes with problems where
configuration changes might be half loaded and half not loaded.

And the enable command already implicitly reloads the init system config
to make sure the symlinks created are taken into account by the init
system. When we upgrade packages we don't change anything howevber, and
hence do only the init system reload.

> Why not just "systemctl reload foo.service"?

Because that reloads the configuration of the service, not the
configuration of the init system.

> Why not just "systemctl frob foo" (no ".service")?

Because there are different kinds of units, 10 to be precise. Services,
sockets, devices, mounts, automounts, timers, swaps, paths, target and
snapshots.

> >      # Optionally, make the update daemon restart or reload its configuration
> >      systemctl reload-or-try-restart foo.service
> 
> Too verbose... "restart" would do for me (if changed, start the new one; if
> old, just do a "killall -HUP service" or some such)

No, I think it would suck departing from the LSB definitions here. And
for LSB init scripts the verb "restart" means "restart when running,
start when not running". LSB also defines what "try-restart" means and
"reload" means, And I think it we should not go directly against that.

> > "systemctl daemon-reload" simply tells the init system to reload its
> > configuration, no new symlinks are created.
> 
> Oh, now I get it. But this doesn't jibe. It is talking about _init_, not
> the _services_ it manages. Perhaps this demands another command (name), or
> a special argument? I.e., "systemctl reload init"?

"reload" reloads the configurations of the services
specified. "daemon-reload" reloads the configuration of the init daemon
itself. i.e. equivalent to SIGHUP on traditional sysvinit.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the devel mailing list