Мне нужно открыть браузер на определенной странице каждый раз, когда ноутбук просыпается из спящего режима / сна и при загрузке.
Я создал скрипт wakeUp.sh в папке /lib/systemd/system-sleep/, сделанный chmod 777 /lib/systemd/system-sleep/wakeUp.sh, чтобы предоставить все права на файл.
Теперь сценарий сам (где я пытаюсь открыть браузер на странице после того, как я закрываю крышку ноутбука [sleep-wakeup]): [ ! d2] #!/bin/sh
echo "$@" > /tmp/wakeUpParams.txt
case $1/$2 in
post|*)
chromium-browser --no-sandbox http://google.com 1>/home/liza/out.txt 2>/home/liza/err.txt
echo "$@" > /tmp/AfterBrowserLaunch.txt
;;
esac
В сценарии я сохраняю вывод входящих параметров в папку /tmp, а после того, как я закрываю / открываю крышку, я нахожу эти параметры в файле txt:
post suspend
Таким образом, параметр $ 1 = post и $ 2 = suspend
Если я запустил скрипт из терминала:
sudo ./wakeUp.sh
или
sudo ./wakeUp.sh post suspend
Он работает успешно. Таким образом, он запускает строку, в которой открывается браузер.
Если я закрываю / открываю крышку, параметры в wakeUpParams.txt по-прежнему остаются post suspend, а также выполняется echo "$@" > /tmp/AfterBrowserLaunch.txt, но браузер все еще не запускается.
Теперь к ошибкам:
Теперь скрипт сам запускает браузер, но я получаю ошибки в файле err.txt:
Home directory not accessible: Permission denied
[13870:13961:0316/181921.003202:ERROR:bus.cc(394)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
(chromium-browser:13870): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Unknown or unsupported transport 'disabled' for address 'disabled:'
[13870:13870:0316/181922.813336:ERROR:gpu_process_transport_factory.cc(1009)] Lost UI shared context.
[13968:14061:0316/181923.018813:ERROR:cmd_buffer_helper.cc(158)] ContextResult::kFatalFailure: CommandBufferHelper::AllocateRingBuffer() failed
Out.txt пуст.
Когда крышка закрыта / открыта:
out.txt - пустой err.txt - пустой ( Почему здесь нет ошибок?)Я также выполняю chromium-browswer с параметрами --no-sandbox chromium-browser --no-sandbox, потому что он не запускается без этого параметра из терминала из-за некоторых проблем безопасности. Это нормальный способ начать его? Потому что браузер говорит в желтом сообщении: «Вы используете неподдерживаемый флаг командной строки: --no-sandbox. Стабильность и безопасность пострадают». Это лучший способ выполнить chromium-browser из командной строки?
Когда крышка закрыта / открыта:
Я изменил chromium-browser к простому текстовому редактору gedit, и он все равно не запустит даже Gedit на открытой / закрытой крышке, а скрипт с терминала работает без проблем ... Поэтому я полагаю, что это не проблема с Chromium ...
Обновление 2
Исходя из понимания того, что неплохо объединиться с запуском GUI из systemd. См. Запуск Chromium при запуске с помощью systemd - Unix & amp; Linux