Eu preciso abrir o navegador em uma determinada página toda vez que o laptop sair do modo de hibernação / suspensão e durante a inicialização.
Eu criei um script wakeUp.sh na pasta /lib/systemd/system-sleep/
fez chmod 777 /lib/systemd/system-sleep/wakeUp.sh
dar todos os direitos sobre o arquivo com certeza.
Agora o próprio script (onde tento abrir o navegador na página depois de fechar a tampa do laptop [sleep-wakeup]):
#!/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
No script, salvei a saída dos parâmetros de entrada em uma pasta /tmp
e, depois de fechar / abrir a tampa, encontrei esses parâmetros no arquivo txt:
post suspend
Assim, o param $ 1 = post e $ 2 = suspend
Se eu executar o script no terminal:
sudo ./wakeUp.sh
ou
sudo ./wakeUp.sh post suspend
Ele é executado com sucesso. Então, ele executa a linha em que o navegador é aberto.
Se eu fechar / abrir a tampa, os parâmetros em wakeUpParams.txt ainda serão post suspend
e a linha echo "$@" > /tmp/AfterBrowserLaunch.txt
também será executada, mas o navegador ainda não será iniciado.
Agora, os erros:
Quando executo o script via terminal o navegador é iniciado, mas recebo erros no arquivo 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
O out.txt está vazio.
Quando a tampa está fechada / aberta:
Eu também executo chromium-browswer
com --no-sandbox
params chromium-browser --no-sandbox
porque ele não iniciaria sem esse parâmetro do terminal devido a alguns problemas de segurança. Esta é a maneira normal de começar? Porque o navegador diz em uma mensagem amarela pop-out: "Você está usando um sinalizador de linha de comando não suportado: --no-sandbox. Estabilidade e segurança vão sofrer." Esta é a melhor maneira de executar chromium-browser
a partir da linha de comando?
Atualização 1
Eu alterei chromium-browser
para um editor de texto simples gedit
e ele ainda não iniciará mesmo Gedit na abertura / fechamento da tampa, enquanto o script do terminal roda sem problema ... Então eu suponho que não seja um problema com Cromo ...
Atualização 2
Começando a entender que é uma má idéia mexer na inicialização da GUI pelo systemd. Consulte Como iniciar o Chromium na inicialização com o systemd - Unix & Linux