因此,我使用Anacron能够可靠地每天运行一些脚本。然而,当Anacron本身没有启动一半时间时,这是行不通的。我怎样才能让Anacron可靠地启动?
> grep 'anacron' /var/log/syslog.2
May 18 19:09:02 s-laptop anacron[2480]: Job `cron.daily' terminated (exit status: 1) (mailing output)
May 18 19:09:02 s-laptop anacron[2480]: Can't find sendmail at /usr/sbin/sendmail, not mailing output
May 18 19:09:02 s-laptop anacron[2480]: anacron: Can't find sendmail at /usr/sbin/sendmail, not mailing output
May 18 19:09:02 s-laptop anacron[2480]: Normal exit (1 job run)
May 18 21:20:48 s-laptop systemd[1]: Started Run anacron jobs at resume.
May 20 16:30:46 s-laptop systemd[1]: Started Run anacron jobs at resume.
May 20 17:02:27 s-laptop systemd[1]: Started Run anacron jobs at resume.
May 20 18:58:50 s-laptop systemd[1]: Started Run anacron jobs at resume.
May 20 19:13:48 s-laptop systemd[1]: Started Run anacron jobs.
May 20 19:13:48 s-laptop anacron[734]: Anacron 2.3 started on 2017-05-20
May 20 19:13:48 s-laptop anacron[734]: Will run job `cron.daily' in 5 min.
May 20 19:13:48 s-laptop anacron[734]: Will run job `cron.weekly' in 10 min.
May 20 19:13:48 s-laptop anacron[734]: Jobs will be executed sequentially
May 20 19:18:51 s-laptop anacron[734]: Job `cron.daily' started
May 20 19:18:51 s-laptop anacron[2367]: Updated timestamp for job `cron.daily' to 2017-05-20
> grep 'anacron' /var/log/syslog.1
May 20 19:18:54 s-laptop anacron[734]: Job `cron.daily' terminated (exit status: 1) (mailing output)
May 20 19:23:48 s-laptop anacron[734]: Job `cron.weekly' started
May 20 19:23:48 s-laptop anacron[2606]: Updated timestamp for job `cron.weekly' to 2017-05-20
May 20 19:30:09 s-laptop anacron[734]: Job `cron.weekly' terminated
May 20 19:30:09 s-laptop anacron[734]: Normal exit (2 jobs run)
May 21 10:02:56 s-laptop systemd[1]: Started Run anacron jobs at resume.
May 25 12:53:39 s-laptop systemd[1]: Started Run anacron jobs at resume.
Jun 1 18:09:14 s-laptop systemd[1]: Started Run anacron jobs at resume.
Jun 3 12:29:40 s-laptop anacron[751]: Anacron 2.3 started on 2017-06-03
Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.daily' in 5 min.
Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.weekly' in 10 min.
Jun 3 12:29:40 s-laptop systemd[1]: Started Run anacron jobs.
Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.monthly' in 15 min.
Jun 3 12:29:40 s-laptop anacron[751]: Jobs will be executed sequentially
Jun 3 12:34:40 s-laptop anacron[751]: Job `cron.daily' started
Jun 3 12:34:40 s-laptop anacron[2243]: Updated timestamp for job `cron.daily' to 2017-06-03
> grep 'anacron' /var/log/syslog
Jun 3 12:34:44 s-laptop anacron[751]: Job `cron.daily' terminated (mailing output)正如在syslog中所看到的,Anacron只是在5月20日和6月3日才开始启动,尽管这台机器是5月21日、25日和6月1日启动的。
此外,今天(6月3日),我实际上在12:11启动了我的电脑,并且看到Anacron没有启动,而且我的工作都没有运行,所以我在12:29重新启动了机器。您可以看到,在第二次启动时,Anacron决定启动。为什么它没有在很多时候启动?
发布于 2017-06-05 17:27:51
编辑:这似乎是固定上游Debian 10和Ubuntu 19.04。
因此,如果使用电池供电,Anacron似乎不会在启动时运行,而只会在早上7:30运行。我的解决方案是配置Anacron,以便在电源接通时运行。
这可以通过添加如下脚本来完成:
#!/bin/sh
test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null我将它保存到/etc/pm/power.d/10_anacron中(确保它是可执行的),在较旧的系统上,插入时会自动运行它。在当前版本的Ubuntu中,您需要添加一个udev规则来运行脚本。只需保存:
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/etc/pm/power.d/10_anacron"敬/etc/udev/rules.d/anacron.rules。
发布于 2017-08-27 10:19:13
一种更简单的方法:只需将文件/etc/default/anacron中的一行更改为:
ANACRON_RUN_ON_BATTERY_POWER=yeshttps://askubuntu.com/questions/921769
复制相似问题