부팅 시 프로그램이 자동으로 시작되도록 허용

부팅 시 프로그램이 자동으로 시작되도록 허용

yocto 배포판에서 시작 시 실행하고 싶은 C++ 프로그램이 있습니다.

/etc/init.d/에 test.sh라는 간단한 스크립트를 추가해 보았습니다.

echo "start my program"
ProgramName

"ProgramName"을 사용하면 내 프로그램이 셸에서 실행될 때 실행됩니다. 이 새 스크립트를 실행하면 프로그램이 실행됩니다.

rc5 폴더에 심볼릭 링크로 추가했습니다. 다시 시작해 보았지만 아무 일도 일어나지 않았습니다. 제가 더 해야 할 일이 있나요?

레시피에 어떻게 적용할 수 있나요? 결국 나는 이것을 자동화하고 싶습니다.

답변1

시작 시 프로그램을 실행하는 간단한 해결책은 다음과 같이 crontab 항목을 만드는 것입니다.

@reboot /path/to/program

이것은 일반적으로 시스템 데몬이 아닌 프로그램에 충분합니다.

@reboot태그는 시스템 시작 시 프로그램이 시작되고 지원되는지 확인합니다.최대크론 구현:

@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 * * * *". 

자세한 내용은 man 5 crontab시스템을 참조하십시오.

답변2

확인하시기 바랍니다이 Q&A비슷한 토론을 해보세요. 스크립트에 헤더를 추가합니다.

#!/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

답변3

레시피에 추가하세요:

  • INITSCRIPT_NAME을 입력하고 etc/init.d에 설치해야 하는 초기화 스크립트의 파일 이름을 추가합니다.
  • INITSCRIPT_PARAMS를 설정하고 스크립트의 실행 수준과 스크립트가 실행되어야 하는 초기화 수준을 지정합니다.

예를 들어 "poky/meta/recipes-connectivity/connman/connman.inc"에 있는 파일을 참조할 수 있습니다. 아래에서 예제 사용법을 볼 수 있습니다.

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

위의 코드 조각에서 connman 스크립트는 ect/init.d에 설치되고 스크립트의 실행 수준은 05입니다. 스크립트는 initlevels 2, 3, 5에서 시작하고 수준 0, 1, 6에서 중지됩니다.

관련 정보