Re: Please drop anacron from task-desktop
- Date: Fri, 8 Mar 2019 09:47:34 +0000
- From: Simon McVittie <smcv@xxxxxxxxxx>
- Subject: Re: Please drop anacron from task-desktop
On Thu, 07 Mar 2019 at 17:07:18 -0400, David Bremner wrote:
> Holger Wansing <hwansing@xxxxxxxxxxx> writes:
> > Are there still many packages, that don't rely on systemd timer units?
> Presumably packages that work without systemd, but still need to
> periodic activity?
Default installations of Debian boot with systemd, and if a sysadmin
chooses to switch to another init system, it's up to them to replace
its functionality (or at least the parts of its functionality they
want). Needing to install anacron in addition to sysvinit seems
Maybe task-desktop should depend on systemd-sysv | anacron?
On Fri, 08 Mar 2019 at 07:34:23 +0100, Laurent Bigonville wrote:
> anacron is AFAICS not running as a service (at least not all the time), it is
> started by cron (or systemd) every hours and exits just after.
You're right that it isn't a daemon, and isn't running all the time. It
does result in systemd or cron waking up every hour and making noise in
the syslog even if there is nothing to be done, though.
On Fri, 08 Mar 2019 at 10:24:28 +0200, Adrian Bunk wrote:
> The output of "ls /etc/cron.daily" is not empty for me.
That doesn't *necessarily* mean you need anacron, or even cron. Many
cron jobs now have a corresponding systemd timer; if you are running
systemd, the cron job starts, detects that it is unnecessary, and exits,
which is an overly-complicated way to do nothing.
For example, if I understand correctly, anacron was initially added to
the GNOME metapackage (and later to task-desktop) for logrotate, but
/etc/cron.daily/logrotate now starts with:
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
In a more opinionated distribution the solution would have been "require
systemd, rely on systemd timers, delete cron jobs, move on", but Debian
still supports non-systemd init as a non-default installation, and
anacron/cron don't have a built-in way to skip particular cron jobs other
than open-coding it in the cron job itself.