본문 바로가기
Linux

Linux , Raspberry Pi 시작 프로그램 등록하기(부팅시 프로그램 실행하기)

by Dork94 2017. 11. 2.

Linux환경에서 부팅시에 특정 프로그램을 실행 시켜야 하고 싶을때가 있습니다.


Windows의 경우 시작프로그램에 해당 파일을 옮기면 되지만 Linux의 경우 GUI로 하는 것이 아닌 특정 파일을 생성, 실행시켜야 합니다.


방법으로는 총 여러가지가 있지만 그중에서 편하다고 생각 하는 방법 한 가지를 소개해드리고자 합니다.


우선 한가지 방법으로는 /etc/rc.local 파일에 해당 쉘 스크립트를 등록하는 방법이 있습니다.


쉘 스크립트란? 리눅스 사용자가 실행시킬 명령어를 적어놓은 파일을 말합니다. 그리고 그 파일을 실행 시킬 수 있도록 권한을 주어 실행시키면 파일에 나열한 명령어들을 차례대로 실행하고 종료하는 파일(스크립트)를 이야기합니다.

그러나, rc.local 파일을 직접적으로 수정하는것은 문제의 여지가 있으므로 설명하지 않겠습니다.


다른한가지 방법으로는 update-rc.d 명령어를 이용하여 파일을 추가하는 방법입니다.


사용법은 다음과 같습니다.


# update-rc.d <shell script name> defaults


이때 shell script는 /etc/init.d 폴더 안에 존재해야 하며 실행권한이 있어야 합니다. 또한, 이때 이름이 example.sh과 같이 확장자를 명시하지 않고 example처럼 이름으로만 명시 되어야 합니다. 아래의 예제로 살펴 보도록 하겠습니다.


# vi /etc/init.d/executeOnBoot

ping 8.8.8.8 



아래의 명령어로 실행 권한을 줄 수 있습니다.


# chmod 755 /etc/init.d/executeOnBoot

# update-rc.d executeOnBoot defaults


위와 같이 명령어를 실행하면 linux가 부팅되면 executeOnBoot 파일이 실행되며 안에 있는 내용(ping 8.8.8.8)이 실행되게 됩니다.


삭제는 아래 명령어와 같이 할 수 있습니다.


# update-rc.d -f <shell script name> remove


※해당 쉘스크립트를 이용해 프로그램을 실행하고자 할 경우, 우선 /etc/init.d 폴더로 들어가 해당 쉘 스크립트가 정상적으로 구동되는지 테스트 해보아야 합니다. 왜냐하면, 쉘스크립트의 실행 경로가 /etc/init.d 폴더이므로, 환경변수나 path등의 문제로 프로그램이 원하는 대로 동작하지 않는 경우가 있으니 주의바랍니다.

댓글0