Автор Тема: После обновления Альт Образование 10.1 до Альт Образование 10.2, перестал сам запускаться скрипт из  (Прочитано 1605 раз)

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
Прикрепите сюда ярлык.
Дело не в ярлыке. Скрипт  из командной строки - запускает программы. А запуск того же скрипта  системой через cron - выполняет запись в лог, а программы не запускает.
скрипт:
cheese
echo контрольная точка 30 -- $(date +%T) >> /home/OBLAKO/log.txt
exit

    Вот,например, этот скрипт, если запускать вручную, то Фотовидеобудка запускается и пишет в лог, а при запуске через cron или autostart - Фотовидеобудка - cheese  не запускается, лог-пишется.
« Последнее редактирование: 25.10.2023 14:53:45 от genand1947 »

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
А точно не с path проблема?
Попробуйте прописать в скрипте полные пути к запускаемым приложениям

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
А точно не с path проблема?
/usr/bin/cheese
echo контрольная точка 30 -- $(date +%T) >> /home/OBLAKO/log.txt
exit
    Прописал полный путь: /usr/bin/cheese, то же самое:  если запускать вручную, то Фотовидеобудка запускается и пишет в лог, а при запуске через cron или autostart - Фотовидеобудка - cheese  не запускается, лог-пишется.

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
   Или я что-то неправильно понял?
Видимо да. Из desktop-файла удалите

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 630
Из desktop-файла удалите
Что откуда удалить?
Строки текста, про которые Вам написали выше.
И Name[ru_RU]=!!!! Name=!!!!, сделайте нормальные имена, желательно латиницей.

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
сделайте нормальные имена, желательно латиницей
Ярлык имеет имя "!!!!", ссылается на скрипт "f.sh", дело не в ярлыке, а в том что Скрипт f.sh  из командной строки - запускает программы. А запуск того же скрипта  системой через cron или чеорез автозагрузку,- выполняет запись в лог, НО программы не запускает.

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
Установил Альт Образование 10.2 на втором компьютере, ничего вообще не ставил. То же самое. f.sf вручную команды запускает, а система нет.
« Последнее редактирование: 26.10.2023 11:13:55 от genand1947 »

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 043
  • ITS
попробуй в скрипте
/usr/bin/cheese 2>/tmp/err.logили
strace `which cheese` 2>/tmp/err.log
и посмотри что там
cat /tmp/err.logчто толку гадать на гуще

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 630
сделайте нормальные имена, желательно латиницей
Ярлык имеет имя "!!!!", ссылается на скрипт "f.sh", дело не в ярлыке, а в том что Скрипт f.sh  из командной строки - запускает программы. А запуск того же скрипта  системой через cron или чеорез автозагрузку,- выполняет запись в лог, НО программы не запускает.
Имя, всё-таки, должно быть понятным, но это так, придирки.

Добавьте в f.sh
echo 'Display' $DISPLAY >> /tmp/err.log

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
добавил в f.sh  строки:
sleep10
echo контрольная точка cron -- $(date +%T) >> /tmp/log.txt
/usr/bin/cheese 2>/tmp/err.log
strace `which cheese` 2>/tmp/err.log
echo 'Display' $DISPLAY >> /tmp/err.log
cat /tmp/err.log
sleep 10
exit
#-----------------И вот результат:
log.txt   содержит:
контрольная точка cron -- 15:04:12
err.txt   приложен:

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 630
У Вас переменная DISPLAY не определена, программа не понимает куда отрисовывать интерфейс.
Выполните в виртуальной консоли пользователя, в графической среде,
echo $DISPLAYполучите что-то вроде :0.
Добавьте второй строкой в файл f.sh строку DISPLAY=:0, или что там у Вас высветится.
Должно получиться примерно следующее
#!/bin/bash
DISPLAY=:0
sleep10
echo контрольная точка cron -- $(date +%T) >> /tmp/err.log
echo 'Display =' $DISPLAY >> /tmp/err.log
echo 'Path =' $PATH >> /tmp/err.log
echo 'whoami =' $(whoami) >> /tmp/err.log
/usr/bin/cheese 2>/tmp/err.log
strace `which cheese` 2>/tmp/err.log
exit

cat /tmp/err.log - Это команда, чтобы посмотреть лог в консоли.
Но можно и любым текстовым редактором в графике посмотреть /tmp/err.log

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
DISPLAY=:0
sleep10
echo контрольная точка cron -- $(date +%T) >> /tmp/err.log
echo 'Display =' $DISPLAY >> /tmp/err.log
echo 'Path =' $PATH >> /tmp/err.log
echo 'whoami =' $(whoami) >> /tmp/err.log
/usr/bin/cheese 2>/tmp/err.log
strace `which cheese` 2>/tmp/err.log
exit
Результат выполнения:
1) В Альт Образование 10.2 - этот скрипт в автозапуске вообще не выполняется и err.log  - не образуется.
2) В Альт Образование 10.1 - этот скрипт в автозапуске выполняется, cheese - запускается и err-10.1.log - прилагаю:,
3) Однако через cron в Альт Образование 10.2 этот скрипт пытается выполнится,  err-10.2.log - через cron - пишется, прилагаю, но cheese - не запускается.

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 630
1) В Альт Образование 10.2 - этот скрипт в автозапуске вообще не выполняется и err.log  - не образуется.
Права на исполнение у скрипта есть?

3) Однако через cron в Альт Образование 10.2 этот скрипт пытается выполнится,  err-10.2.log - через cron - пишется, прилагаю, но cheese - не запускается.
Тут есть и моя ошибка. В результате которой, первые строки лога затираются выводом strace.
Нужно строки
/usr/bin/cheese 2>/tmp/err.log
strace `which cheese` 2>/tmp/err.log
Привести к виду
/usr/bin/cheese 2>>/tmp/err.log
#strace `which cheese` 2>>/tmp/err.log

Задание cron, надеюсь, от имени пользователя?

Оффлайн genand1947

  • Давно тут
  • **
  • Сообщений: 225
DISPLAY=:0
sleep10
echo контрольная точка cron -- $(date +%T) >> /tmp/err.log
echo 'Display =' $DISPLAY >> /tmp/err.log
echo 'Path =' $PATH >> /tmp/err.log
echo 'whoami =' $(whoami) >> /tmp/err.log
/usr/bin/cheese 2 >>/tmp/err.log
#strace `which cheese` 2>>/tmp/err.log
exit
-------------------------------
Результат выполнения на Альт Образование 10.2: cheese по прежнему не запускается ни в автозагрузке, ни через cron:
В последней строке лога - это я вручную в консоли от имени student запустил и только в этот раз при ручном запуске запустился cheese  .
« Последнее редактирование: 31.10.2023 10:12:11 от genand1947 »