Qual é a melhor maneira de fazer um programa executável do Qt rodar como um serviço no Ubuntu?

1

Eu escrevi meu código Qt para um sistema embarcado que está sendo executado no Ubuntu.

Eu quero rodar meu programa como um serviço no Ubuntu para que eu possa pará-lo ou iniciá-lo usando monit . Eu vi algumas pessoas criando um novo arquivo em /etc/init.d e adicionando seu caminho de arquivo executável lá.

Mas quero saber qual é a melhor maneira de executar meu programa como um serviço? Obrigado

    
por Parsa 17.03.2014 / 22:52

2 respostas

0

No Ubuntu, a maioria dos serviços init foram substituídos por trabalhos upstart .

Aqui é o lugar onde começar o link .

    
por user.dz 17.03.2014 / 23:50
0

Os programas iniciados a partir de /etc/init.d (ou melhor, de /etc/init no caso de upstart) são chamados daemons e eles geralmente são executados como processos em segundo plano com toda a sua saída redirecionada para um arquivo de log. Os daemons geralmente são iniciados na inicialização do sistema e não dependem de uma sessão da GUI em execução ou do login do usuário em sua conta, etc.

Programas gráficos de "espaço de usuário" normais são bem diferentes - os aplicativos do Qt geralmente são iniciados a partir de uma sessão X, e tecnicamente são "filhos" do processo X, portanto quando o X sai, o aplicativo é finalizado. Conceitualmente, pode haver várias sessões X sendo executadas em uma máquina ao mesmo tempo, com uma cópia separada de seu aplicativo sendo executada em cada uma delas, portanto a ideia de adicionar o script de inicialização do aplicativo a /etc/init.d não o reduziria nem em princípio .

É possível fazer algo semelhante ao que você deseja configurando o X para que ele inicie automaticamente seu aplicativo na inicialização. Indo mais longe, você pode usar um gerenciador de janelas minimalista que só executaria seu aplicativo em tela cheia maximizada. Isso é chamado de "modo de quiosque" - você pode encontrar alguns tutoriais na web. Por exemplo, aqui está uma pergunta sobre o Unix e o Linux: Sistema baseado em Debian, apenas um programa de gui, nada mais

    
por Sergey 18.03.2014 / 00:04