해당 포스팅은 William E. Shotts, Jr. 의 오픈소스 저서 The Linux Command Line(링크)를 번역한 내용입니다

시그널(Signals)

먼저
굉장히 간결하고 직선적인 과정 같지만 뒤에 숨겨진 일들이 있습니다.
kill 을 사용해 프로세스에 시그널 전송

시그널이 명시되지 않으면 기본적으로
Table 10-4: 자주 사용되는 시그널
번호 | 이름 | 의미 |
1 | Hangup. HUP 신호는 터미널이 전화선을 통해 원격 컴퓨터에 연결되어 있을 때 사용되던 과거의 자취입니다. 터미널 연결이 끊어지면 |
|
2 | Interrupt. |
|
9 | ||
15 | Terminate. |
|
18 | Continue. |
|
19 | Stop. 프로세스가 종료되지 않고 정지하도록하는 시그널입니다. |
|
20 | Terminal Stop. |

이 예제에서는

시그널을 바꿔가며 위 예제를 반복해 보세요. PID 대신 jobspec을 사용할 수 있다는 것도 잊지 마시기 바랍니다.
프로세스는 파일처럼 소유자가 있고,
위에 언급된 시그널 외에도 시스템에 자주 사용되는 시그널들이 있습니다:
Table 10-5: Other Common Signals
번호 | 이름 | 의미 |
3 | Quit. 나가기 | |
11 | Segmentation violation. 이 시그널은 프로그램이 허가되지 않은 메모리에 쓰기 작업을 수행하려고 할 때 전송됩니다. | |
28 | Window Change. 창 크기가 바뀔 때 시스템이 보내는 시그널입니다. |
궁금하다면 아래 명령어를 통해 전체 시그널 목록을 확인할 수 있습니다:

killall 을 사용해 여러 프로세스에 시그널 전송

이 명령어를 사용해 보기 위해

시스템 종료하기
시스템을 종료하기 위해서는 시스템의 모든 프로세스를 차례로 종료하고, 탑재된 모든 파일 시스템을 동기화하는 등의 필수적인 작업들을 해야 합니다. 종료 작업을 위해 사용하는 명령어는


혹은 다음과 같이 reboot 할 수 있습니다:

딜레이는 다양한 방식으로 명시될 수 있습니다. 자세한 내용은
프로세스 관련 명령어
프로세스를 모니터링하는 것은 중요한 시스템 관리 업무이므로 이를 위한 다양한 명령어가 존재합니다:
Table 10-6: 프로세스 관련 명령어들
명령어 | 설명 |
프로세스 목록을 트리 형태로 출력하여 각 프로세스의 부모-자식 관계를 보여줍니다. | |
메모리, 스왑, 디스트 I/O 등의 시스템 리소스 사용 상태에 대한 스냅샷을 출력합니다. 지속적인 업데이트를 원할 경우 시간 간격을 지정할 수 있습니다. 예) |
|
시스템 부하를 그래프로 보여주는 그래픽 프로그램입니다. | |
요약
최신 시스템들은 여러 프로세스를 관리하는 메커니즘을 가지고 있습니다. 리눅스는 다양한 프로세스 관리 툴을 제공합니다. 리눅스가 서버용 운영체제로 가장 많이 사용되고 있기 때문에, 리눅스의 프로세스 관리 편의성이 간접적으로 증명된 바나 다름없습니다. 그러나 다른 시스템들과는 다르게 리눅스는 커맨드 라인 툴들에 거의 전적으로 의존합니다. 리눅스에도 GUI 기반의 프로세스 관리 도구가 있지만, 빠른 속도와 시스템 자원을 덜 사용하는 커맨드 라인 툴이 더 선호됩니다. GUI 기반의 툴이 더 예뻐 보일 수는 있지만, 그들 자체로 시스템에 상당한 부하를 발생시켜 자원관리라는 본래의 목적을 상실하게 됩니다.
'리눅스 > Part 1 - Learning The Shell' 카테고리의 다른 글
리눅스 기초 | 10-1. 프로세스 (0) | 2024.05.31 |
---|---|
리눅스 기초 | 9-2. 권한 (0) | 2024.05.30 |
리눅스 기초 | 9-1. 권한 (0) | 2024.05.29 |
리눅스 기초 | 8. 고급 키보드 트릭 (0) | 2024.05.28 |
리눅스 기초 | 7. 쉘처럼 세상 바라보기 (0) | 2024.05.24 |