gpt4 book ai didi

bash - 从 crontab 运行 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:21 24 4
gpt4 key购买 nike

我无法从 crontab 运行以下简单脚本:

#!/bin/bash
notify-send "battery.sh working"

该文件的权限是 rwxr-xr-x 并且它可以使用命令 bash battery.shsh battery.sh.

在我的 crontab 中,我尝试使用 bashsh 运行它,使用绝对路径和本地路径。我当前的 crontab 如下所示:

* * * * * /home/marpangal/battery.sh
* * * * * sh battery.sh
* * * * * bash battery.sh
* * * * * sh /home/marpangal/battery.sh
* * * * * bash /home/marpangal/battery.sh

但是 cron 不执行脚本,我没有收到来自通知发送的消息。

最佳答案

notify-send 需要 DBUS_SESSION_BUS_ADDRESS 环境变量才能与当前桌面 session 通信。由于 cron 在几乎空的环境中运行,因此该变量不可用。

但是你可以直接在你的battery.sh脚本中设置它:

export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)
notify-send "Message from cron"

这会查找您的 gnome-session 的进程 ID,并从 gnome-sessions 中提取 DBUS_SESSION_BUS_ADDRESS(及其值) ' 环境。

现在 notify-send 能够在您的桌面 session 中显示通知。

关于bash - 从 crontab 运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49064157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com