Onde devo colocar meu programa C ++ para ser executado na inicialização? [fechadas]

2

Eu estou tentando o meu Ubuntu-Server lança o meu programa depois de arrancar, então eu coloquei o endereço do arquivo executável do meu programa em /etc/rc.local seguido por space+& assim:

/home/m/myapp &

Mas não funcionou! Meu programa é um código C ++ simples que usa a biblioteca gtk + para mostrar uma imagem e funciona quando eu a executo manualmente. Mas eu quero que ele seja executado automaticamente na inicialização, mas não sabe como?

EDIT: Eu quero fazer um computador de propósito simples. Na verdade, é um robô que o programa é escrito em C ++ e é executável em /home/m/myapp . Também não gosto de ter uma página de login. Não há menu de usuário ou capacidade de controlar o sistema. Portanto, ele deve ser executado após a inicialização automaticamente.

Se eu quiser explicar mais, o sistema deve funcionar exatamente assim:

When user turns on the system, it shows a welcome picture, then it waits until the user says a voice command. then it recognizes the voice, shows an image/video related to the voice, then shows the welcome picture again and waits for new command.

There is no menu, no login page and nothing for user. this system only works by user command as I said above!

Então, como sou novo no Linux, não sei se é um programa em segundo plano ou não? E como posso fazer isso?

    
por user145959 06.11.2017 / 08:07

1 resposta

2

GTK requer X, sem X seu programa não pode exibir uma imagem.

se você quiser que ele seja executado no contexto do gerenciador de login, adicione-o ao ambiente de área de trabalho do gerenciador de login. (isto foi / var / lib / alguma coisa da última vez que eu olhei para o Ubuntu)

senão você pode substituir o gerenciador de login por um não interativo como 'nodm', que abrirá automaticamente a sessão e, em seguida, apenas adicionará seu aplicativo c ++ aos aplicativos de inicialização da sua sessão.

Não sei onde você adiciona aplicativos para iniciar automaticamente em openbox, mas ~/.xsession sempre funciona.

crie um arquivo ~/.xsession que faça yourapp& e, em seguida, openbox-session (consulte a página do manual para xinit )

    
por 06.11.2017 / 10:09