LinuxForum.Fans
Тема

Запуск скрипта по событию в incron

Автор: researcher 8 сообщений 2917 просмотров
#354841

Здравствуйте. В общем надо выводить сообщение при изменении текстового файла, но дело в том что скрипт при запуске ничего не показывает, а если запускать его из терминала вручную - работает.
Конфиг incrontab:

text
/home/admin/Documents/1.txt IN_MODIFY,IN_NO_LOOP /home/admin/Documents/scripts/upd.sh

Содержимое upd.sh:

text
notify-send 'update' 'new update'

Пробовал и

text
kdialog --msgbox "update"

, аналогично.
Что я делаю не так?
Содержимое лога:

text
Dec 13 15:59:12 localhost incrond[8767]: (admin) CMD (/home/admin/Documents/scripts/upd.sh)

P.S. Fedora 19 x86_64

#354852
"researcher" написал:
Содержимое upd.sh:
notify-send 'update' 'new update'
text

#!/bin/bash

в начале присутствует?

#354857
-=Serj=- написал:
[quote="researcher"]Содержимое upd.sh:
notify-send 'update' 'new update'
text

#!/bin/bash

в начале присутствует?[/quote]
Было

text
#!/bin/sh

Но тем не менее, это ничего не меняет.

#354862

researcher, в качестве разделителя в правиле incron везде 1 пробел?

#354865

researcher, попробуйте изменить upd.sh так:

text

#!/bin/sh
export DISPLAY=:0.0
notify-send 'update' 'new update'
#355334
-=Serj=- написал:
researcher, в качестве разделителя в правиле incron везде 1 пробел?

Конечно.

#355337
-=Serj=- написал:
researcher, попробуйте изменить upd.sh так:
text

#!/bin/sh
export DISPLAY=:0.0
notify-send 'update' 'new update'

К сожалению, не помогло. Пробовал напрямую в incrontab указывать содержимое скрипта, без результата.

#355368

Решил проблему допиливанием скрипта, может быть кому понадобится:

text
#!/bin/sh
export "DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(ps -au admin | grep -i "startkde" | awk '{ print $1 }')/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')"
export DISPLAY=:0.0
notify-send 'Update' 'New Update'

P.S: Для Gnome, startkde заменяем на gnome-session.

Войдите или зарегистрируйтесь, чтобы ответить.