데비안 9.1이 설치된 비글본 블랙이 있습니다. 우리는 시스템 전원이 켜질 때 항상 실행되기를 원하는 GPIO용 C++ 프로그램을 작성했습니다. 어떻게 할 수 있나요?
답변1
극도로단순한해결책은 @reboot
바이너리만 실행하는 크론 작업을 추가하는 것입니다.
crontab -e
sudo crontab -e
코드(예: 루트 crontab)를 실행 하고 다음 줄을 추가 해야 하는 사용자에 대해 이 작업을 수행합니다.
@reboot /path/to/some/executable
이렇게 하면 시스템이 시작될 때마다 작업이 실행되도록 예약됩니다.
crontab(5)
자세한 내용은 설명서를 참조하세요 ( man 5 crontab
).
프로그램이 수행하는 작업에 따라 이 정도로 충분할 수도 있고 너무 단순할 수도 있습니다.
답변2
프로그램을 컴파일하고 run_gpio
알려진 경로(예 /path/to/run_gpio
: . 루트 실행 파일로 표시되어야 합니다.
$ sudo chmod 755 /path/to/run_gpio
그런 다음 데비안 init
시스템을 구성하여 프로그램을 시작하세요.
여기에서 설명을 찾을 수 있습니다. http://xmodulo.com/how-to-automatically-start-program-on-boot-in-debian.html
Debian에서 /etc/init.d라는 디렉토리에는 시작 및 종료 중에 init 프로세스가 실행하는 스크립트 목록이 포함되어 있습니다. 따라서 시작 시 특정 프로그램이나 스크립트를 자동으로 실행하기 위해 해당 init.d 스크립트를 생성할 수 있습니다.
$ sudo vi /etc/init.d/run_gpio
vi 외에 nano도 사용할 수 있습니다.다음 줄을 init.d 디렉터리의 새 파일에 넣으세요.
#! /bin/sh
# /etc/init.d/run_gpio
case "$1" in start)
/path/to/run_gpio
;; esac
마지막으로 init.d 스크립트를 실행 가능하게 만들고 init.d 스크립트를 기본 실행 수준에 추가하여 시작 시(및 종료 시) 호출할 수 있도록 합니다.
$ sudo chmod 755 /etc/init.d/run_gpio
$ sudo update-rc.d run_gpio defaults