∮最基本的∮
我尝试将桌面通知添加到一些使用anacron
运行的相当简单的脚本中,只是为了让我知道它们何时运行以及何时完成。由于某种原因,脚本确实运行了,但通知从未发送。如果我手动运行脚本(也就是说,使用./bash_test.sh
而不是sudo anacron -fdn testing
),通知发送得很好。
剧本
我尝试运行的bash脚本如下所示:
#!/bin/bash
python -c 'import notifications; notifications.clamstart()'
#some clamav scanning stuff happens in here, this bit runs fine
python -c 'import notifications; notifications.clamfinish()'
对应的notifications.py文件如下所示:
from plyer import notification
def clamstart():
notification.notify(
message="Security script has started running.",
app_name="Clam Scan Daily",
hints={"desktop-entry":"clamtk"}
)
def clamfinish():
notification.notify(
message="Security script has finished running.",
app_name="Clam Scan Daily",
hints={"desktop-entry":"clamtk"}
)
补充信息
- 这两个文件在同一个目录中,所以据我所知,import语句应该工作正常(当我使用
./bash_test.sh
运行它时,它们确实工作正常) - 我已经尝试过使用
notify-send
,这是我最初设置的,它也遇到了同样的问题,这就是为什么我决定尝试切换到python的plyernotify()
,看看是否有效。 - 所有这些组件单独运行都很好,只有当我尝试使用
sudo anacron -fdn testing
的anacron运行它们时,它们才会停止工作 - 我相信anacrontab设置正确,因为它运行除了通知位,但以防万一,我会在这里添加它:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
1 10 backup-script /home/glottophilos/backup_daily.sh
7 15 virus-scan /home/glottophilos/clamscan_daily.sh
1 10 testing /home/glottophilos/testscript.sh
- 我还应该指出,我非常反对使用
cron
而不是anacron
的想法,因为这是一个个人钻机的设置,并不是所有的时间。如果有另一种方法来处理调度,虽然根本不需要anacron
,我很乐意探索这个选项!
1条答案
按热度按时间xsuvu9jc1#
溶液
好的,按照@Nick ODell在原始文件的注解中的指示,解决方案似乎已经在
etc/anacrontab
文件中完成了这一操作:然后在bash脚本中使用此格式(完全避免使用python):