[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#727708: upstart and upgrading from sysvinit scripts



Russ Allbery <rra@debian.org> writes:

> I have now uploaded lbcd 3.5.0-1 to the archive.

And now lbcd 3.5.0-2, because I completely forgot to add the stanzas to
the systemd unit and upstart configuration file to run lbcd as a non-root
user.  Whoops.  (And, of course, I noticed one more problem after that
upload, so 3.5.0-3 will be coming shortly to fix an architecture
dependency for systemd support.)

Since I'm thinking about it (I just added a patch in the Debian packaging
to a unit file installed by a package for which I'm upstream), and since
it came up on the thread previously, a note from the upstream perspective
about portability of systemd unit files.

I think the dream of using the exact same unit file with no changes on all
distributions is just that, a dream.  It will work in some simple cases,
and not work in many other cases.  This package is an excellent example:
the Debian packaging installs a system non-root user, and the daemon runs
as that user.  As upstream, I don't want to assume anything about users,
and I certainly don't want to add a user and group to the system during
make install, so the unit file I install runs lbcd as root (which should
be harmless; running as a non-root user is defense in depth).  As a Debian
packager, obviously I have the tools available to create a system user and
should do so.  This is similar to the cases of changing paths.

However, what is certainly true is that systemd unit files come far, far
closer to being able to universally use the same configuration than init
scripts, so much closer that it does make sense for upstream to install
them.  By comparison, sharing init scripts between Red Hat and Debian is
almost impossible, and upstream-provided init scripts almost always
require significant changes or even complete rewrites.

This is a real benefit over the sysvinit world.  However, it's not really
a distinguishing feature between systemd and upstart.  upstart
configuration files have basically the same necessary properties: much
shorter, more features built into the init system so less dependence on
various external files, and standardized functionality.  The systemd
upstream has put more effort into making it easy for upstreams to install
unit files than the upstart maintainers to date, but the basic design has
similar properties.  So for me it's not a distinguishing point between the
two.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: