As respostas dependem das suas necessidades.
Você pode querer apenas que ele inicie após um login de usuário em particular, como alternativa, você pode querer que ele seja iniciado durante a reinicialização (um serviço). ?
inicie no login
Quando você inicia um programa com exec
, ele substitui o processo usado para iniciá-lo.
- Atualmente, seu bash de login é substituído pelo seu scanner e ctrl - c envia sinal de interrupção, pára e então você está desconectado.
- em vez de executar você pode simplesmente iniciar o programa, ele é executado em primeiro plano (você não recebe o prompt de volta). ctrl - c tem o mesmo efeito de antes, pára o scanner, mas você estará de volta no prompt bash login.
- Você pode iniciar o processo em segundo plano, anexando
&
ao linha de comando, isso cria um novo processo, ainda exibe a saída seu terminal, mas você também tem um prompt do seu shell de login, então a saída do processo em segundo plano pode interferir com o seu escudo de primeiro plano. Você pode superar isso redirecionando o stdout e stderr para um arquivo (mesmo / dev / null se não é desejado), evitando a interferência.
Quando você faz logout, ainda está em execução em segundo plano, ele recebe um sinal de desconexão (mas pode detectar isso), portanto, ainda está processando em segundo plano. Se ele foi anexado ao seu terminal, ele será desanexado (a saída será descartada, a menos que você já tenha atendido o redirecionamento).
Quando você fizer o login novamente, um novo scanner será iniciado, a menos que você verifique se já existe um, e é fácil fazer isso.
iniciar durante a reinicialização
A vantagem deste método é que você não precisa fazer o login para iniciar o processo, a desvantagem é que ele está em execução o tempo todo, você pode não querer isso.
Existem 3 mecanismos principais de inicialização do sistema, init , upstart e systemd , cada um sendo diferente. Tradicionalmente /etc/rc.local seria o lugar para adicionar processos de sistema específicos da máquina.
Como WilQu menciona, Arch usa systemd , e ele forneceu uma receita para isso, então não vou repetir.
conselhos
Escreva um script para iniciar seu processo, mesmo que seja apenas uma linha, as chances são de que você queira fazer mais do que apenas executá-lo, então você pode escrever o script curto agora. (verifique se está em execução, armazene o pid, use uma string aleatória diferente com base na data? quem sabe ...).
Isso permite que você desenvolva e teste o script, executando-o manualmente e garantindo que ele funcione conforme desejado.
Depois, você pode adicionar seu script, onde quiser (manualmente, perfil de login, inicialização do sistema).