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

Ответ: используйте jemalloc 3.6.0-1 на Centos 6.x, сделайте не использовать (или пытаться использовать) jemalloc 3.6.0-8, как это для Centos 7 ....

2
17.02.2017, 18:26
1 ответ

Похоже, что есть задержка между выполнением /home/pi/.config/lxsessions/LXDE-pi/autostart и автоматическое монтирование любых дисков, поэтому я изменил свой сценарий bash, чтобы сначала попытаться найти файл, а затем вернуться к настройкам по умолчанию. Обычно это срабатывает в течение первых нескольких секунд, поэтому не слишком грязно и не слишком долго.

Я думаю, причина того, что вызов определенного URL-адреса сработал, но попытка найти его при запуске не помогла, заключается в том, что задержка между запуском хрома и проверкой файловой системы для подключенных дисков примерно одинакова, поэтому к тому времени, когда хром запускается, URL-адрес, указанный для chrome, действителен. В то время как при выполнении операции поиска это происходит намного быстрее и возвращает значение null до того, как файловая система сможет монтировать диски, поэтому хром открывается с URL-адресом по умолчанию.

Следующий код, вероятно, можно было бы оптимизировать, открыв значение по умолчанию в качестве первого действия, а затем попытавшись найти настоящий файл, убив хром в случае успеха и перезапустив его с правильным URL-адресом, но пока это работает:

#!/bin/bash
# $1 Defines the path that we will look in
# $2 Defines the name of the file we're looking for
# $3 Defines the path to a default file if not found


delayTime=1s

for i in {0..60}
 do
  path="$(find $1 -name $2 | head -n 1)"
  if [ -f "$path" ];then
   echo "content found at $path"
   chromium-browser --incognito --kiosk $path
   exit
  else
   echo "content was not found on attempt $i"
   sleep $delayTime
  fi
 done

chromium-browser --incognito --kiosk $3
exit
0
27.01.2020, 22:42

Теги

Похожие вопросы