Raspberry Pi_Kor_20.3.5 run level 무관 booting 자동 실행

20.3.5 run level 무관 booting 자동 실행

명령이나 script가 특정 run level과 무관하게 항상 실행되도록 하려면 “/etc/rc.local” 파일에 등록하면 된다. 여기에 등록된 script는 통상 시스템이 정상 작동하는 상태인 run level “2” ~”5″ 상태에서만 실행된다.

다음은 “/etc/rc.local” 파일의 내용에 대한 사례이다.

Raspberry Pi_Kor_20.3.4 run level 연동 booting 자동 실행

20.3.4 run level 연동 booting 자동 실행

20.3.4.1 init script 등록 원리

init script를 작성하여 “/etc/init.d”에 저장한 다음에는 해당 script가 run level에 따라 자동 실행되도록 시스템에 등록해야 한다. 시스템에 등록한다는 것을 시스템적으로 자세히 살펴보면 원본 script 파일에 대해서 link를 만드는 것이라는 것을 알수 있다. 즉 link를 실행하면 원본 script 파일이 실행되는 것이다.

시스템에서 run level에 따라 자동 실행하는 script는 “/etc/rc0.d/” ~ “/etc/rc6.d/” directory 밑에 등록되어 있다. 즉 run level에 따라서 실행하고 싶은 script는 link를 만들어서 각각의 directory 밑에 넣어 두면 등록이 된다.

Raspberry Pi_Kor_20.3.3 init script 작성

20.3.3 init script 작성

20.3.3.1 init script의 의미

시스템이 booting하거나 shutdown하는 과정에서 사용되는 script를 “init script”라고 한다. 모든 init script는 기본적으로 “/etc/init.d/” directory 밑에 넣어 두어야 한다.

init script에는 사용하는 용도에 따라 다음과 같이 여러 가지 종류가 있다.

n run level에 따라 특정 작업을 다르게 하기 위한 script

시스템 관리를 위해 필요한 다양한 작업을 할 수 있다.

Raspberry Pi_Kor_20.3.2 booting sequence

20.3.2 booting sequence

시스템이 처음 시작할 때는 일정한 순서에 따라 정해진 작업을 실행하게 되는데, 이런 순서를 “booting sequence”라고 한다. 다음에는 booting sequence에 대한 기본 체계와 이를 이용하여 booting할 때 필요한 작업을 자동으로 실행하는 방법에 대해서 설명하도록 하겠다.

Raspberry Pi_Kor_20.3.1 run level

20.3 init script를 통한 자동 실행

20.3.1 run level

20.3.1.1 run level 정의

Linux에서는 시스템이 처음 시작하거나 종료할 때 사전에 지정된 모든 작업을 처리하거나, 때때로 시스템 복구작업을 할 때 다른 사용자들이 사용하지 못하게 할 필요가 있다. 이렇게 특정 단계에서 시스템을 사용할 수 있는 사용자를 제한하거나, 특정 환경에서 실행할 수 있는 명령이나 프로그램의 종류를 구분하기 위해서 “run level”이라는 도구를 사용한다.

Raspberry Pi_Kor_20.2.6 script 실행

20.2.6 script 실행

20.2.6.1 script 파일 실행 준비

script는 일반적인 실행 프로그램처럼 binary 상태의 실행 파일은 아니지만, 하나의 프로그램으로서 자체적으로 실행될 수 있어야 한다. 따라서 script 파일에 실행(execute) 권한이 부여되어 있어야 한다. chmod 명령을 이용해서 원하는 권한을 부여할 수 있다. 파일의 권한에 대해서는 [13.2 파일에 대한 권한 변경]의 설명을 참조하기 바란다

Raspberry Pi_Kor_20.2.5 script 실행 제어

20.2.5 script 실행 제어

20.2.5.1 조건에 따른 선택적인 처리

어떤 조건에 따라 명령을 선택적으로 처리하고자 할 때 사용하는 것이 “if” 문, “case” 문이다

Raspberry Pi_Kor_20.2.4 script에서의 연산

20.2.4 script에서의 연산

20.2.4.1 대입 연산(assignment operation)

script에서 변수를 새로 정의하거나, 변수에 어떤 값을 지정하는 것을 대입(assignment)라고 하는데, 이럴 때 사용하는 연산자가 “=”이다. 이런 방식을 assignment mode라고 하며, 기본적인 형식은 다음과 같다.

Raspberry Pi_Kor_20.2.3 script 문법 기초

20.2.3 script 문법 기초

여기서는 script를 작성하기 위한 각종 규칙과 문법에 대해서 설명할 것이다.

20.2.3.1 script 정의

script는 기본적으로 텍스트 형식의 파일이다. 내부적으로 해당 파일이 script라는 정의가 있어서 일반적인 텍스트 파일과는 구분된다. 해당 파일일 script라는 것을 정의하는 것은 다음과 같이 행의 맨 처음에 입력하는 값이다.

Raspberry Pi_Kor_20.2.2 Shell의 명령 실행 방식

20.2.2 Shell의 명령 실행 방식

20.2.2.1 kernel의 system call 종류

● “fork” 시스템 call

이 call은 한 프로세스가 다른 프로세스를 실행시키기 위해 사용하는 시스템 호출 방식의 하나로 명령 실행이 필요할 때 child process가 생성되어 별도로 실행되는 형식이다.