2015-04-18 21:51 GMT+03:00 Alexander Guy <[email protected]>: > Removing the shell script from the ExecStart and using Environment is a good > idea. > > Changing SHEEP_OPTS to SHEEPDOG_ARGS and SHEEPDOG_PATH is going to break > existing installs that use this service file. What's the functional benefit > to doing this? We already have a separate service file for Debian packages > (i.e. debian/sheepdog.service), that uses another naming scheme. >
This not breaks anything, because this file created sometime ago by me, and as i see no distro support for latest sheepdog that uses systemd units. >> > -PIDFile=@LOCALSTATEDIR@/run/sheep.pid >> > -Type=forking >> > +ExecStart=@SBINDIR@/sheep $SHEEPDOG_ARGS $SHEEPDOG_PATH > > I don't think this is a good idea. I went and double-checked the systemd > documentation: > > > http://www.freedesktop.org/software/systemd/man/systemd.service.html > > If set to simple (the default if neither Type= nor BusName=, but ExecStart= > are specified), it is expected that the process configured with ExecStart= is > the main process of the service. In this mode, if the process offers > functionality to other processes on the system, its communication channels > should be installed before the daemon is started up (e.g. sockets set up by > systemd, via socket activation), as systemd will immediately proceed starting > follow-up units. > > > ... so if I'm understanding this right: > > 1) By removing 'Type=forking', it defaults to 'Type=simple' > 2) 'Type=simple' expects to have communication setup before the daemon is > started (e.g. by systemd managing the sockets via socket activation). > > #2 means that (unless we implement socket activation) we're going to have an > even bigger start-up race condition than we already have, for services that > depend on sheepdog (e.g. qemu guests that start at bootup) because systemd > will have no way of knowing when sheep is actually ready for work. > > So overall, I NACK these changes. I think in this case i can add some code to support systemd more tightly, by adding http://www.freedesktop.org/software/systemd/man/sd-daemon.html. So in this case sheepdog can notify systemd about it status. -- Vasiliy Tolstov, e-mail: [email protected] jabber: [email protected] -- sheepdog mailing list [email protected] https://lists.wpkg.org/mailman/listinfo/sheepdog
