Xer0FyT의 대답은 아마도 PI에서 프로그램을 자동으로 시작하는 가장 간단한 방법 일 것입니다. 그러나 프로세스 모니터링이 없기 때문에 다시 시작되지 않기 때문에 시작된 프로그램이 어떤 이유로 충돌하면 문제가 발생합니다. 개인적으로 daemontools를 대신 사용하는 것이 좋습니다 . 설정이 매우 간단하며 Raspbian에 포함되어 있습니다. 기본적으로 run
프로그램을 시작 하는 쉘 스크립트가 포함 된 서비스 디렉토리를 작성합니다 . 그러면 daemontools는 어떤 이유로 든 충돌이 발생하면 프로그램이 시작되고 다시 시작되는지 확인합니다.
daemontools를 설정하는 것은 매우 간단합니다. 다만
apt-get install daemontools daemontools-run
그런 다음 실행 가능한 실행 스크립트가 포함 된 서비스 디렉토리를 작성하십시오.
# create the service directory
mkdir -p /service/my-service
# create the run script
cat > /service/my-service/run <<EOF
#!/bin/sh
echo "I'm an example service executed by daemontools"
sleep 1
# Replace those 2 lines with a real call to your program like this:
# exec /my/program.py --arguments
EOF
# make it executable
chmod 755 /service/my-service/run
보고 /service/my-service/run
편집하여 실행하는 대신 자신의 프로그램을 시작하십시오 echo
. 완료되면 해당 디렉토리를 symlink에 연결 /etc/service
하여 daemontools가 자동으로 (다시) 시작하십시오.
cd /etc/service
ln -s /service/my-service .
약 5 초 후에 프로그램이 실행됩니다. 사용하여 시작 / 중지 할 수 있습니다
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
syslog에 로그인하는 것도 가능합니다. 따라서 프로그램의 출력이 손실되지 않습니다. 나는 이것에 대해 더 완전한 블로그 게시물을 썼습니다 : https://info-beamer.com/blog/running-info-beamer-in-production
sudo
에서rc.local
자체. 부팅시 루트 권한으로 실행됩니다.&
프로그램이 빠르게 무언가를 수행하고 종료하지 않는 한 사용에 대해주의를 기울여야합니다 .