라즈베리파이/라즈베리파이 일반
부팅할 때, 자동으로 프로그램 실행하기
아크리엑터
2021. 3. 10. 02:29
반응형
라즈베리파이에 전원을 넣었을 때, 즉, 부팅이 되었을 때 바로 프로그램이 실행되도록 해보자.
몇가지 방법이 있지만, 라즈베리파이에 설치한 kali 리눅스에 설정하는 방법을 정리한다.
먼저, /etc/init.d/wips 파일을 생성하여, 아래 내용의 스크립트를 작성한다.
# cd /etc/init.d
# sudo vi wips
/etc/init.d/wips 파일 안의 내용은 아래와 같이 만든다.
#!/bin/sh
case "$1" in
start)
eval "cd /home/pi/wips/"
echo "Starting WIPS Sensor"
eval "./start_wips.sh &"
;;
stop)
echo "WIPS Sensor stopped"
eval "pkill wips"
;;
*)
echo "Usage: /etc/init.d/wips {start|stop}"
exit 1
;;
esac
exit 0
위의 스크립트가 잘 만들어졌는지 확인하려면, 실행을 시켜보자. 먼저, 실행 가능하게 파일 모드를 아래와 같이 바꾼다.
# sudo chmod 755 wips
실행을 할 때는 아래와 같이 실행시키고, 종료도 되는지 를 확인해 본다.
# sudo /etc/init.d/wips start
# sudo /etc/init.d/wips stop
실행 오류가 나거나, 실행 종료가 안되면 스크립트를 재확인하여 정상적으로 실행되도록 하면 된다.. ^^ 말은 쉽다.
이제 마지막 단계로, 부팅할 때 자동 실행되도록 등록한다.
# sudo update-rc.d wips defaults
이제 부팅을 해서 자동 실행되는지를 확인해보자.
3. SysV Runlevel Config
2번에서 rcN.d에 연결파일이 생성되어 있더라도 run level이 제대로 설정되지 않는 경우가 발생하며,
이럴 때는 process 수행이 잘 안되는 경우가 있음
- 2번 수행 후 run level 편집
- case 1) # sudo sysv-rc-conf
- 없을 경우: # sudo apt-get install sysv-rc-conf
- 등록한 process의 필요한 run level 칸이 X가 채워지도록하고 종료하면 끝
- 아래 사진 처럼, WIPS의 라인에 있는 런레벨별로 모두 X가 채워지게 하면 된다. 마지막에는 q를 선택하여 프로그램을 종료한다.
- case 2) # sudo sysv-rc-conf --level 2345 myservice on
- usage [sysv-rc-conf] : http://sysv-rc-conf.sourceforge.net/
process script가 단순 shell script인 경우 2번 방법으로 프로세스 실행이 잘 안되는 경우가 많았으나,
3번 방법으로 run level을 편집해 주면 실행이 잘되었음
출처: https://dh8607.tistory.com/207 [::: Blog from Hoons :::]
반응형