Файл не запускается из автозагрузки. [Решено]

Для того, что бы включалась подсветка клавиатуры по Scrol Lk
Создал файл .Xmodmaprc там прописал:
add mod3 = Scroll_Lock
поместил его в каталог пользователя.
По команде из консоли: xmodmap .Xmodmaprc подсветка включается.
Для того, что бы она включалась после перезагрузки системы создал файл xmodmap.sh там прописал:
#!/bin/bash
xmodmap .Xmodmaprc

поместил его в каталог пользователя и добавил в автозагрузку через "Параметры системы"
в каталоге /home/maks/.kde/Autostart/ он появился автоматически.

Перезагрузился — не работает.
В чём может быть причина?

0
Lang - 20 Январь, 2015 - 20:48
Изображение пользователя Lang.

Можно попробовать написать команду в /etc/rc.local, загугли про это подробней

0
Horny - 20 Январь, 2015 - 21:43

Спасибо за наводку, обязательно погуглю.
Но по идее должно же работать и так, в 12.04 работало. Почему тут не работает?

0
dyug - 21 Январь, 2015 - 11:10

файл исполняемый? :-)
то есть если его запустить из консоли - он выполнит задачу?
может путей не хватает?

0
Horny - 21 Январь, 2015 - 14:27

Да галочку не забыл поставить "является исполняемым"
По команде из консоли: xmodmap .Xmodmaprc подсветка включается.
При клике на сам скрипт тоже включается, я даже временно кнопку сделал, но при загрузке не срабатывает почему-то.
Путей вроде хватает:

+1
dyug - 21 Январь, 2015 - 14:59

попробуй привести файл к виду:
#!/bin/bash
/usr/bin/xmodmap /home/maks/.Xmodmaprc

если будет работать - значит проблема переменных окружения, она в общем известна, и лечится правильными прописями переменных окружения.

разумеется, пути должны соответствовать твоей системе
Если за /usr/bin/xmodmap я уверен, то второй файл я жопой чуюпо методу интуции определил. :-)

0
Horny - 21 Январь, 2015 - 15:59

Спааасибо.
Заработало! В топку кнопку. =)))

если будет работать - значит проблема переменных окружения, она в общем известна, и лечится правильными прописями переменных окружения.

А про это где можно почитать? А то я чёт не в курсе про прописи переменных окружения.

0
dyug - 21 Январь, 2015 - 15:58

Это любимая ошибка при создании скриптов при выполнении не от того пользователя.
потому все пути к файлам лучше прописать хардкорно.
или выставить переменные окружения.
что именно - можно проверить методом исключения
сначала удалить /usr/bin и посмотреть будет ли работать, а потом удалить /home/maks/
есть такое у меня лично ощущение что в данном случае важен только второй путь.

0
Horny - 21 Январь, 2015 - 16:26

Работает только когда и то и то.
Когда либо то, либо то не работает.

+1
dyug - 21 Январь, 2015 - 17:34

Значит - таки переменные окружения, и путь запуска программы не соответствуют нормам.
Но главное - все заработало нормально.
Теперь будешь в курсе, как правильно искать проблемы в таких мелочах, которые тем не менее хорошо пьют кровь. :-)

Те же проблемы есть у крона, и там решение выглядит аналогичным.
вообще-то вариант решения может выглядеть так:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
cd /home/maks/
#или,что в общем правильней переход в каталог текущего пользователя
cd ~
xmodmap .Xmodmaprc

что задает пути где искать исполняемый файл
переход в каталог пользователя
и выполнение команды
так оно более правильно с точки зрения идеологии построения скриптов, независимых от системы, и имени пользователя

ну как то так.
Вы познакомились с моими мыслями по правильному написанию скриптов под юних-подобные системы :-)

+1
Horny - 21 Январь, 2015 - 19:08

Спасибо.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры