Faça um programa iniciar na inicialização

1

Eu tenho um programa c ++ que eu quero que ele seja executado no momento da inicialização em uma distribuição yocto.

Eu tentei adicionar um script simples em /etc/init.d/ chamado test.sh no qual eu acabei de ter:

echo "start my program"
ProgramName

com "ProgramName", meu programa é executado quando eu executo em um shell. Se eu executar esse novo script, meu programa será executado.

Eu adicionei como link simbólico para a pasta rc5. Eu tentei reiniciar, mas nada acontece. Preciso fazer mais alguma coisa?

Como posso fazer isso funcionar com uma receita? No final, eu gostaria de ter isso automatizado.

    
por user1298272 23.05.2017 / 09:49

3 respostas

0

Por favor, verifique este Q / A para discussão semelhante. E adicione o cabeçalho no seu script:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Sample_GT02 daemon startup script
# Description:       Sample Server for GT02 class 
### END INIT INFO
    
por 23.05.2017 / 09:52
0

Na sua receita, adicione:

  • INITSCRIPT_NAME e adicione o nome do arquivo do script de inicialização que você precisa instalar em etc / init.d.
  • INITSCRIPT_PARAMS e especifique o nível de execução do seu script e os initlevels nos quais o script deve ser executado.

Por exemplo, você pode referenciar o arquivo em "poky / meta / recipes-connectivity / connman / connman.inc". Você verá o seguinte exemplo de uso.

    INITSCRIPT_NAME = "connman"
    INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."

No script connex do snippet acima instalado em ect / init.d e o script tem um runlevel de 05, o script inicia nos initlevels 2, 3 e 5 e pára nos níveis 0, 1 e 6.

    
por 19.06.2017 / 08:22
0

Uma solução simples para executar um programa na inicialização é criar uma entrada crontab para ele da seguinte forma:

@reboot /path/to/program

Isso geralmente é adequado para programas que não são daemons do sistema.

A tag @reboot garantirá que o programa seja iniciado quando o sistema for inicializado e for suportado nas implementações de cron mais :

@reboot        Run once, at startup.          
@yearly        Run once a year, "0 0 1 1 *".  
@annually      (same as @yearly)              
@monthly       Run once a month, "0 0 1 * *". 
@weekly        Run once a week, "0 0 * * 0".  
@daily         Run once a day, "0 0 * * *".   
@midnight      (same as @daily)               
@hourly        Run once an hour, "0 * * * *". 

Para mais informações, consulte man 5 crontab no seu sistema.

    
por 19.06.2017 / 08:39

Tags