1. 서론
개인적인 개발 요청이 들어와 리눅스 기반으로 프로그램을 개발했고 전원이 인가되면 항상 자동으로 프로그램이 동작해야했기 때문에, 이전 글([라즈베리파이 / 리눅스] init.d 서비스 스크립트 작성을 통한 시작 프로그램 만들기)에서와 같이 init.d에 등록해서 시스템 시작시에 동작하도록 최초 1회 설정해야 한다.
처음에는 install.sh와 같이 쉘 스크립트를 작성해서 전달해주었는데, 알고보니 프로그램을 압축해제한 다음 실행 권한을 주어야 동작한다.
당연하게도 이 경우를 대비해서 실행 권한을 주는 명령어를 전달해주었지만, 제대로 사용하지 못할게 불 보듯 뻔하니 코드를 조금 수정해서 간단하게 프로그램을 설치할 수 있도록 했다.
2.install.sh에 실행 권한 부여하기
쉘 스크립트에 실행 권한을 부여하는 방법은 간단하다.
sudo chmod +x install.sh
그러나 내 경우는 설치 스크립트를 여러 개로 구분해 두었고, 이를 찾아서 하나씩 실행 권한을 주라는 것은 조금 애매했다.
그래서 디렉터리에 포함된 스크립트를 모두 찾아 실행 권한을 부여하는 명령어를 구글링 했다.
sudo find . -name "*.sh" | xargs chmod -v +x
3. Makefile 만들기
더 간단하게 설치를 수행할 수 있도록 간단한 Makefile을 만들기로 했다. 사용자 입장에서는 설치 후 make 한번만 입력하면 되도록, 차례로 쉘 스크립트를 실행하도록 작성했다.
install :
sudo find . -name "*.sh" | xargs chmod -v +x
sudo ./scripts/a.sh
sudo ./scripts/b.sh
sudo ./scripts/c.sh
sudo ./scripts/d.sh
init :
sudo ./scripts/e.sh
clean :
sudo find . -name "__pycache__" | xargs rm -rf
참고로 나는 배시 스크립트와 Makefile을 잘 모른다. 정말 예제 중에 가장 기초적인 예제 수준만 사용할 줄 안다.
install에는 쉘 스크립트에 권한 주고 각 스크립트를 실행 (실행 후 다시 권한을 뺏는 것도 보안상 좋을듯?)
init은 그냥 프로그램을 초기화하는 명령을 담고 있는 쉘 스크립트를 실행한다.
마지막으로 clean은 내가 개발할 때 편하려고 캐시 삭제하는 코드다.
'프로그래밍 > 운영체제' 카테고리의 다른 글
Ubuntu에서 HEIC 이미지를 jpg로 변환 (405) | 2023.02.19 |
---|---|
Bash 2차원 배열 정의 및 Loop 탐색 (0) | 2020.11.29 |
[리눅스] 인터넷 NTP 이용한 시간 동기화와 강제 설정 방법 (0) | 2019.07.04 |
[맥북] Mac OS 단축키 모음 (0) | 2019.03.28 |
[윈도우즈] 최신 윈도우즈 10, Windows Defender 끄기 (레드스톤3) (0) | 2019.03.20 |