라즈베리파이/라즈베리파이 일반

부팅할 때, 자동으로 프로그램 실행하기

아크리엑터 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를 선택하여 프로그램을 종료한다.

 

process script가 단순 shell script인 경우 2번 방법으로 프로세스 실행이 잘 안되는 경우가 많았으나,

3번 방법으로 run level을 편집해 주면 실행이 잘되었음



출처: https://dh8607.tistory.com/207 [::: Blog from Hoons :::]

반응형