Скрипт, вызванный Cron, частично выполняет свою работу
У меня следующая проблема. Я хотел бы, чтобы скрипт (/usr/local/bin/script.sh) запускался Cron и что-то менял в корневом разделе в одном из каталогов, а затем отображал уведомление (kdialog).
Моя проблема в том, что если я добавлю правило Cron в корневую таблицу (
sudo -u root crontab -e
), правило выглядит так:
/home/$USER/monitoring_path IN_MODIFY sudo -u root /bin/bash /usr/local/bin/script.sh $@ $# $%
Этот сценарий вносит изменения в корневой раздел, но отказывается отображать уведомление.
Если я добавлю правило Cron в таблицу $USER (
sudo -u "$USER" crontab -e
) и правило выглядит так:
/home/$USER/monitoring_path IN_MODIFY sudo -u "$USER" /bin/bash /usr/local/bin/script.sh $@ $# $%
Этот скрипт показывает уведомление, но не хочет ничего писать в корневой раздел.
Уведомление kdialog в скрипте выглядит так:
DISPLAY=:0 sudo -u "$USER" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus \
kdialog --icon "${THEME_PATH}preview.png" \
--title "SDDM" \
--passivepopup "Text..."
Почему он не отображается из корневого crontab?
Я бы предпочел добавить правило в таблицу пользователей (
sudo -u $USER crontab -e
) вместо корневой таблицы, но оттуда я не могу внести какие-либо изменения в корневой раздел.