You are not logged in.
Hello everyone,
I'm running Arch for some time now and I am very happy with it.
Since the last update I'm having issues with Cups and Systemd.
Although Systemd mentions, that it starts the CUPS scheduler on boot, the CUPS daemon is not started.
I enabled org.cups.cupsd.service in systemd and when starting it manually it works fine.
After booting however, cupsd is not running and I can't print.
There are no entries in journalctl that would point out any issues, when checking
systemctl | grep cups
I receive the following output:
org.cups.cupsd.path loaded active waiting CUPS Scheduler
org.cups.cupsd.socket loaded active listening CUPS Scheduler
Can you give me some hints where to search for the issue? Is it already a problem, that org.cups.cupsd.path is waiting instead of listening?
I appreciate your help.
Kind Regards,
Florian
Offline
You should have "org.cups.cupsd.service" listed in your output which runs cupsd
What output do you get from...
systemctl status org.cups.cupsd.service
You may perhaps have to reinstall cups?
Offline
I have the same issue.
[root@x201t ~]# systemctl status org.cups.cupsd.service
● org.cups.cupsd.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:cupsd(8)
[root@x201t ~]# systemctl status org.cups.cupsd.socket
● org.cups.cupsd.socket - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.socket; enabled; vendor preset: disabled)
Active: active (listening) since śro 2016-08-24 13:20:41 CEST; 3min 52s ago
Listen: /run/cups/cups.sock (Stream)
sie 24 13:20:41 x201t systemd[1]: Listening on CUPS Scheduler.
[root@x201t ~]# systemctl status org.cups.cupsd.path
● org.cups.cupsd.path - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.path; enabled; vendor preset: disabled)
Active: active (waiting) since śro 2016-08-24 13:20:41 CEST; 3min 53s ago
sie 24 13:20:41 x201t systemd[1]: Started CUPS Scheduler.
This is also happening in a VM with fresh Arch install.
The problem seems to be that cupsd is started with -l option (on demand) and it's started when you try to access printers in any application.
Last edited by Applebloom (2016-08-24 12:00:30)
Offline
At least on my install, CUPS is started automatically when I go to use it on the local machine, and I can print fine. If you have set up CUPS to accept requests from other computers on the network, you will need to add to add a drop in file as described at the end of the manual setup page of the wiki.
The fact that you can't print might well be a completely separate issue. What applications are you printing from? What error messages do you get? What happens if you print a file using lp?
Offline
The OP mentioned that the daemon, although enabled, is not starting at boot.
Like the OP, i have enabled org.cups.cupsd:
% systemctl list-unit-files --type=service |grep enabled |grep cups
org.cups.cupsd.service
But immediately after booting:
% systemctl status org.cups.cupsd
● org.cups.cupsd.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:cupsd(8)
% lpstat -a :(
lpstat: Bad file descriptor
# systemctl start org.cups.cupsd
# systemctl status org.cups.cupsd
● org.cups.cupsd.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2016-08-25 07:40:39 CDT; 19s ago
# lpstat -a
Brother_HL-2070N_series accepting requests since Sun 21 Aug 2016 07:37:10 AM CDT
As you can see, for me as well cups can be started manually, but it is consistently not starting at boot even though it is enabled. I have tried disabling and re-enabling the daemon, and reinstalling cups, libcups and cups-filters. None of that helped.
Last edited by kekules_dream (2016-08-25 12:57:45)
Offline
$ systemctl enable org.cups.cupsd.service
Created symlink /etc/systemd/system/printer.target.wants/org.cups.cupsd.service → /usr/lib/systemd/system/org.cups.cupsd.service.
Created symlink /etc/systemd/system/sockets.target.wants/org.cups.cupsd.socket → /usr/lib/systemd/system/org.cups.cupsd.socket.
Created symlink /etc/systemd/system/multi-user.target.wants/org.cups.cupsd.path → /usr/lib/systemd/system/org.cups.cupsd.path.
org.cups.cupsd.service will be started when printer.target is reached
org.cups.cupsd.socket will be started when sockets.target is reached
org.cups.cupsd.path will be started when multi-user.target is reached
printer.target
This target is started automatically as soon as a printer is
plugged in or becomes available at boot.This may be used to pull in printer management daemons dynamically
when printer hardware is found.
If printer.target is never reached then org.cups.cupsd.service will not started even though it is enabled
Would also recommend reading socket-activation2.html which covers the different activation types using cups as its example.
Offline
I am having the same issue. All of the symlinks listed above are present, but when I boot, systemd does not start cups. If I try to print, nothing happens. If I systemctl restart org.cups.cupsd, it starts and works fine, and I can print normally. My printer is a network printer, would that have anything to do with it? How do I tell if printer.target is reached?
What sucks most about this is that it was working fine before, and when you count on it, it fails.
Offline
If printer.target is never reached then org.cups.cupsd.service will not started even though it is enabled
I don't know how CUPS used to work, but I think loqs has correctly identified the issue now. Since org.cups.cupsd.service contains the line:
WantedBy=printer.target
then it will not be started automatically until a local printer is plugged in. You could temporarily change the line to:
WantedBy=multi-user.target
but this would be overwritten the next time `cups` is updated.
For a network printer, I was able to get org.cups.cupsd.service to start on boot by enabling cups-browsed.service, as suggested in the CUPS wiki, even though I didn't really want Avahi, which it requires.
This works because cups-browsed.service contains the lines:
Requires=org.cups.cupsd.service
WantedBy=multi-user.target
Offline
loqs and sbs, I'm sure that is all good information but this problem started recently and the printer has been plugged in the entire time.
Anyway, for my case, this appears to be solved. I was looking in /etc/cups and noticed I had some files in there with some really old modification times (up to 3 years old). Then I read in the cups wiki article that clients.conf is deprecated. I had a /etc/cups/clients.conf and clients.conf~. I moved them out and rebooted. Now every time I reboot the daemon starts automatically, localhost:631 works and lpstat -p gives the appropriate output.
Offline
You could temporarily change the line to:
WantedBy=multi-user.target
but this would be overwritten the next time `cups` is updated.
You could simply add the appropriate symlink manually or like this:
# systemctl add-wants multi-user.target org.cups.cupsd.service
Offline