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 Desktop
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/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to