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가 생성되어 별도로 실행되는 형식이다.

Raspberry Pi_Kor_20.2.1 Shell과 script

20.2 script를 통한 명령 일괄 실행

여기서는 여러 개의 명령을 한번에 일괄 처리하기 위해서 사용하는 script 도구에 대해서 살펴볼 것이다. script에 대한 개념과 script를 작성하는 방법, script를 실행하는 방법 등에 대해서 논의할 것이다.

20.2.1 Shell과 script

20.2.1.1 script 란?

Linux 시스템에서는 Shell이 명령을 실행하는데 중심적인 역할을 하고 있는데, 여러 가지 Shell 프로그램 중에서 BASH가 기본적인 Shell로 지정되어 있다. BASH는 Terminal 환경에서 사용자가 입력한 명령을 받아서 그 명령의 의미를 해석하고, 지정된 방식에 따라 명령을 처리한 다음, 처리 결과를 사용자에게 되돌려 준다.

Raspberry Pi_Kor_20.1.2 수동 실행과 자동 실행

20.1.2 수동 실행과 자동 실행

처리를 지시하는 주체를 기준으로, 처리방식을 수동 실행 방식과 자동 실행 방식으로 구분할 수 있다.

● 수동 실행

이 방식에서는 어떤 명령의 처리를 사용자가 직접 지시한다. 실행이 필요한 시점을 사용자가 결정하고, 실행을 위해 입력하는 구체적인 명령의 내용도 사용자가 결정하여 명령의 실행을 지시하게 된다. 여기서 실행하는 명령은 하나의 개별 명령일 수도 있고, script로 정의된 여러 명령의 묶음일 수도 있다. 그것이 어떤 형태이던, 실행의 시작을 사용자가 결정하는 것이다.

Raspberry Pi_Kor_20.1.1 개별 실행과 일괄 실행

20.1 명령 실행 방식

Raspberry Pi 시스템에서 명령을 실행해하는 데는 여러 가지 방법이 있다. 사용자가 일일이 하나씩 실행할 수도 있고, 컴퓨터가 알아서 자동으로 처리해 줄 수도 있다. 여기서는 어떤 방식을 사용할 수 있는지에 대해서 살펴보기로 하겠다.

20.1.1 개별 실행과 일괄 실행

한번에 처리하는 명령의 개수를 기준으로, 처리방식을 개별 실행 방식과 일괄 실행 방식으로 구분할 수 있다.

Raspberry Pi_Kor_20.0 Chapter 20 일괄 실행과 자동 실행

Chapter 20 일괄 실행과 자동 실행

Chapter 주요 내용

여기서는 Linux 시스템에서 명령을 실행해하는 여러 가지 방법에 대해서 설명할 것이다. 명령을 하나씩 실행거나, 여러 명령을 한꺼번에 실행할 수도 있다. 또한 수동으로 실행할 수도 있고, 시스템이 자동으로 실행하도록 할 수도 있다.

이와 관련하여 여러 명령을 한번에 처리하기 위해서 사용하는 script 도구에 대해서 살펴볼 것이다. 일정한 주기로 명령을 실행해 주는 도구에 대해서도 살펴 볼 것이다.

다음과 같은 항목에 대한 내용을 포함하고 있다.
■ 개별 실행과 일괄 실행

■ 수동 실행과 자동 실행

■ script를 통한 일괄 실행

■ init script를 통한 자동 실행

■ schedule에 의한 자동 실행

Raspberry Pi_Kor_19.3.3 “/proc/PID/”의 개별 process 정보 확인

19.3.3 “/proc//”의 개별 process 정보 확인

먼저 프로그램에 대한 process를 조회해 보면 아래와 같이 PID “9223” process가 있다. 해당 process에 대한 CMD 항목을 보면 “/usr/bin/motion”라는 내용이 표시되어 있다.

Raspberry Pi_Kor_19.3.2 “/proc” 폴더의 시스템 정보 확인

19.3.2 “/proc” 폴더의 시스템 정보 확인

“/proc” 폴더 밑에는 시스템의 전반에 대한 상태 정보를 포함하고 있다.

19.3.2.1 CPU와 Memory 정보

“/proc” 폴더에서는 시스템의 전체에 대한 CPU와 memory 관련 정보를 확인해 볼 수 있다.

다음은 “/proc/meminfo”의 내용을 확인한 것이다. 이것은 memory의 전반적인 상태를 보여주고 있다. 잠시 후에 해당 파일의 내용을 다시 확인해 보면 내용이 변경된 것을 알 수 있다. 즉 시스템의 상태가 변경됨에 따라 memory 사용 상태가 변경되었으므로 이 파일의 내용도 자동으로 변경된 것을 의미한다.