Я действительно рекомендовал бы использовать сценарий оболочки. Чтобы подражать вызову cron notify-send, я подключился к своей системе с помощью ssh localhost. Вызов '/ usr / bin / notify-send "foo"' не сработал, и мне не повезло при добавлении DISPLAY =: 0.0 в строку. Вот что сработало:
DBUS_SESSION_BUS_ADDRESS="$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/`pgrep -u username cinnamon|head -1`/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//')" /usr/bin/notify-send "foo"
Это, мягко говоря, ОЧЕНЬ беспорядочно. Это чище.
#! /bin/bash
DBUS=$(pgrep -ou $1 cinnamon)
DBUS="$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$DBUS/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//')"
DBUS_SESSION_BUS_ADDRESS="$DBUS" /usr/bin/notify-send $2
И в cron:
*/1 * * * * /path/to/notify.sh user "help"
Обратите внимание, что бит корицы присутствует, потому что это оконный менеджер, который я использую.Вам, вероятно, придется заменить его на nautilus или что-то еще, что у вас есть в качестве оконного менеджера. У меня также есть пользователь, указанный в качестве первого аргумента, потому что это делает его более модульным позже, если вы хотите, чтобы это работало независимо от того, кто вошел в систему.
Вы заключаете его в команду sh -c
find /path/to/dir -type d -links 2 -exec sh -c 'stow -d "$(dirname "$1")" -t /home/t/bin "$(basename "$1")"' sh {} \;