I didn't reproduce this yet, answering Till's questions first. > Does systemd care about keepalive files?
No, there is no such concept. You can certainly build such a thing using path units and others, but no Linux init system kills processes willy- nilly from the outside (except on shutdown, of course) -- daemons either have a built-in timeout and quit themselves, or have to be stopped explicitly. > The CUPS upstream *.path makes cupsd being triggered by creating the file, but only if the file is not there already. What is this good for? I have no idea. I haven't printed anything in years (I don't even have a printer), and that file exists, thus that .path unit always gets activated and starts cupsd.service even though I have no need for it. Does that ever actually get cleaned up? Also, such "keepalive" stamps should *always* be in /run -- it makes no sense to put them on the file system in /var where they are persistent across reboot. > Does this *.path also take down cupsd if one removes the keepalive file. No, it doesn't (at least not in the way that path unit is written). This also doesn't make much sense, TBH -- you can never know from the outside if a daemon is still required to run, so you always need the daemon itself to make that decision. Instead of creating/removing keepalive files it could just stop itself, which is structurally a lot simpler. > And why does shutdown of CUPS fail after removing the keepalive file (with "Job for cups.service canceled.")? It sounds like cups.service gets stopped, but around the same time something tries to start it again, possibly via either cups.path or cups.socket. In generally, if you need to prevent a service from restarting, you need to first stop all "auto-activating" units (path, socket, timer) as well, and before stopping the .service. > what in the prerm script of the CUPS Debian package deletes the keepalive file? The maintainer scripts don't, and I'm not at all convinced that anything is actually removing it (see above). Maybe cupsd is supposed to clean it on shutdown, but this doesn't happen sometimes? So ISTM that the current cups.path serves no real purpose and apparently just gets in the way. I think what *would* make sense is to have a path unit that starts cups at boot if there are pending print jobs, e. g. something like "DirectoryNotEmpty=/var/spool/cups". -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to cups in Ubuntu. https://bugs.launchpad.net/bugs/1642966 Title: package cups-daemon 2.1.3-4 failed to install/upgrade: subprocess new pre-removal script returned error exit status 1 Status in cups package in Ubuntu: Confirmed Status in init-system-helpers package in Ubuntu: Confirmed Status in systemd package in Ubuntu: Confirmed Bug description: This is in xenial-proposed, please block release to -updates accordingly :) ProblemType: Package DistroRelease: Ubuntu 16.04 Package: cups-daemon 2.1.3-4 ProcVersionSignature: Ubuntu 4.4.0-46.67-generic 4.4.24 Uname: Linux 4.4.0-46-generic x86_64 NonfreeKernelModules: zfs zunicode zcommon znvpair zavl ApportVersion: 2.20.1-0ubuntu2.1 Architecture: amd64 CupsErrorLog: Date: Fri Nov 18 11:13:15 2016 ErrorMessage: subprocess new pre-removal script returned error exit status 1 InstallationDate: Installed on 2016-05-02 (200 days ago) InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Release amd64 (20160420.1) Lpstat: device for mallards-officejet-pro-8600: dnssd://Officejet%20Pro%208600%20%5BD63461%5D._ipp._tcp.local/?uuid=1c852a4d-b800-1f08-abcd-d89d67d63461 MachineType: Dell Inc. XPS 15 9550 Papersize: a4 PpdFiles: mallards-officejet-pro-8600: HP Officejet Pro 8600, hpcups 3.16.3 ProcCmdline: BOOT_IMAGE=/boot/vmlinuz-4.4.0-46-generic.efi.signed root=UUID=3643ef37-7cee-41b3-9387-2faa819c44db ro quiet splash vt.handoff=7 ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-46-generic.efi.signed root=UUID=3643ef37-7cee-41b3-9387-2faa819c44db ro quiet splash vt.handoff=7 RelatedPackageVersions: dpkg 1.18.4ubuntu1.1 apt 1.2.15 SourcePackage: cups Title: package cups-daemon 2.1.3-4 failed to install/upgrade: subprocess new pre-removal script returned error exit status 1 UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 04/07/2016 dmi.bios.vendor: Dell Inc. dmi.bios.version: 01.02.00 dmi.board.name: 0N7TVV dmi.board.vendor: Dell Inc. dmi.board.version: A00 dmi.chassis.type: 9 dmi.chassis.vendor: Dell Inc. dmi.modalias: dmi:bvnDellInc.:bvr01.02.00:bd04/07/2016:svnDellInc.:pnXPS159550:pvr:rvnDellInc.:rn0N7TVV:rvrA00:cvnDellInc.:ct9:cvr: dmi.product.name: XPS 15 9550 dmi.sys.vendor: Dell Inc. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1642966/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp