Executa um programa GUI na inicialização

4

Estou usando o Ubuntu 14.04. Eu escrevi um pequeno script chamado trial. O conteúdo do script é o seguinte:

 #!/bin/sh
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin     
sh -c firefox

Copiei o script para /etc/init.d , modifiquei a permissão usando chmod +x trial e usei update-rc.d trial defaults . O arquivo fez link, mas quando eu reiniciei a máquina. Não correu o firefox. Eu tentei cron @reboot mas sem sucesso. Eu tentei rc.local também novamente falha.

    
por Joker 22.05.2014 / 13:16

3 respostas

7

O diretório /etc/init.d/ contém scripts do sistema que essencialmente iniciam, param, reinicia os daemons (serviços do sistema). É o método "System V Initialization" (SysVinit), contendo o programa init (o primeiro processo que é executado quando o kernel termina de carregar). (EDIT 2 de julho de 2015: Muitos sistemas Linux mudaram recentemente para o sistema systemd init.)

Mas o Firefox é um navegador da Web gráfico. Como tal, ele precisa que o servidor de janelas (X-Windows) e o gerenciador de janelas sejam iniciados; e, você precisaria estar logado no gerenciador de janelas para iniciar o Firefox. Então, a tarefa para você é aprender como iniciar automaticamente um programa depois de ter feito login no gerenciador de janelas.

Encontre o nome do seu gerenciador de janelas. Em seguida, procure por ajuda sobre como iniciar automaticamente um programa.

    
por 22.05.2014 / 13:30
3

Eu não esperaria que isso funcionasse também. Mesmo que você tenha envolvido o lançamento do Firefox em um script, ele não é realmente um script no sentido de que ele pode ser executado durante a inicialização do sistema. Por exemplo, para o lançamento do Firefox, seria necessário executar X e acessar para abrir uma GUI em uma sessão específica do X.

Eu atacaria o problema de uma maneira um pouco diferente usando um dos métodos discutidos abaixo. Em particular, eu geralmente uso a abordagem alternativa .

Normalmente, você coloca X itens relacionados que gostaria de executar no contexto do usuário (você) em um dos dois arquivos:

  • $ HOME / .xsession
  • $ HOME / .xinitrc

  • Para os desktops do GNOME, você pode colocar comandos em $ HOME / .gnomerc

  • Para o KDE, você coloca comandos em $ HOME / .kde / Autostart

Abordagem Alternativa

Alguns comandos, como xset , podem não funcionar nesses arquivos. Se você ainda quiser automatizar algo assim, poderá adicioná-lo como "Aplicativo de inicialização".

Etapa 1

Crie um script de shell, xset.bash .

#!/bin/bash
xset r rate 120 66
Etapa 2

Adicione uma tarefa de inicialização para executar o script de shell.

Abra o aplicativo Startup Applications , em Sistema → Preferências

Emseguida,cliquenobotãoAdicionar

Quando terminar, clique em & Feche os diálogos e teste o logout e faça o login novamente.

Referências

por 22.05.2014 / 13:43
0

Esta resposta ao Firefox não abre na inicialização oferece mais algumas informações e funcionou muito bem para mim:

The global autostart file, /etc/xdg/lxsession/LXDE-pi/autostart, is ignored if you have a local autostart file in your home directory, ~/.config/lxsession/LXDE-pi/autostart. If you have a local autostart file, you need to use that instead of the global one (or remove the local autostart file). Anything you put in the global autostart file will be ignored if a local file exists. You can edit your local autostart file with: nano ~/.config/lxsession/LXDE-pi/autostart (or use your editor of choice). If the file does not yet exist, you can rule this out.

    
por 06.10.2018 / 06:17