들어가며
리눅스 시스템의 부팅과 종료는 사용자가 시스템을 안정적으로 사용하고 관리할 수 있도록 하는 중요한 과정입니다.
리눅스 시스템의 부팅 과정, systemd 서비스, 시스템 종료, 데몬 프로세스, 부트 로더에 대해 정리해봤습니다.
1. 리눅스 시스템의 부팅
리눅스 시스템의 부팅 과정은 다음과 같은 순서로 진행됩니다.
- BIOS 또는 UEFI 검사
- 부트 로더 실행
- 커널 로딩
- 초기 RAM 디스크(initramfs) 생성
- init 프로세스 실행 (systemd)
2. systemd 서비스
systemd는 리눅스 시스템의 초기화 및 서비스 관리를 담당하는 시스템 및 서비스 매니저입니다.
대부분의 리눅스 배포판에서 사용되며, 서비스의 실행 순서, 종속성 등을 관리합니다.
아래는 systemd 서비스를 활용하는 예시의 나열입니다.
2.1 서비스 상태 확인하기
$ systemctl status apache2
2.2 서비스 시작하기
$ sudo systemctl start apache2
2.3 서비스 중지하기
$ sudo systemctl stop apache2
2.4 서비스 재시작하기
$ sudo systemctl restart apache2
2.5 서비스 자동 시작 설정하기
$ sudo systemctl enable samba
2.6 서비스 자동 시작 해지하기
$ sudo systemctl disable cups
3. 리눅스 시스템의 종료
리눅스 시스템을 종료하려면 다음과 같은 명령어를 사용할 수 있습니다.
- shutdown: 시스템을 안전하게 종료하거나 재시작합니다.
- poweroff: 시스템을 즉시 종료합니다.
- reboot: 시스템을 재시작합니다.
3.1 shutdown
시스템을 안전하게 종료하거나 재시작합니다. 명령어 뒤에 옵션을 지정할 수 있습니다.
- shutdown -h: 시스템을 종료합니다.
- shutdown -r: 시스템을 재시작합니다.
- shutdown -H: 하드웨어 종료 시그널을 전송하여 시스템을 종료합니다.
- shutdown -P: 전원을 끄는 시그널을 전송하여 시스템을 종료합니다.
- shutdown +[시간]: 지정된 시간 후에 시스템을 종료합니다.
- shutdown -c: 예약된 종료 작업을 취소합니다.
예를 들어, 10분 후에 시스템을 종료하려면 다음과 같이 입력합니다.
$ sudo shutdown -h +10
3.2 poweroff
시스템을 즉시 종료합니다. 이 명령어는 shutdown -P now와 동일한 효과를 가집니다.
$ sudo poweroff
3.3 halt
시스템을 중지합니다. 시스템이 완전히 종료되지 않고, 중지 상태에 들어갑니다. 일반적으로 서버나 임베디드 시스템에서 사용됩니다.
$ sudo halt
3.4 reboot
시스템을 재시작합니다. 이 명령어는 shutdown -r now와 동일한 효과를 가집니다.
$ sudo reboot
4. 데몬 프로세스 & 백그라운드 프로세스
데몬 프로세스는 백그라운드에서 실행되는 서비스 프로세스로, 리눅스 시스템에서 다양한 기능을 제공합니다.
데몬 프로세스는 보통 시스템 부팅 시 자동으로 시작되며, 필요에 따라 수동으로 시작하거나 종료할 수 있습니다.
4.1 데몬 프로세스(Daemon Process)
데몬 프로세스는 사용자와 상호작용하지 않고, 백그라운드에서 독립적으로 실행되는 프로세스입니다. 데몬 프로세스는 시스템의 서비스를 제공하거나, 시스템의 자원을 관리하며, 주로 서버에서 사용되는 프로그램입니다. 일반적으로 데몬 프로세스의 이름은 'd'로 끝나는 경우가 많습니다. 예를 들어, sshd는 SSH 데몬, httpd는 웹 서버 데몬입니다.
데몬 프로세스는 시스템 시작 시에 자동으로 실행되거나, 시스템 관리자에 의해 수동으로 실행됩니다. systemd나 init과 같은 시스템 초기화 도구를 통해 데몬 프로세스를 관리할 수 있습니다.
4.2 백그라운드 프로세스(Background Process)
백그라운드 프로세스는 사용자와 상호작용하지 않고, 리눅스 시스템에서 실행되는 프로세스입니다. 데몬 프로세스와 비슷하지만, 백그라운드 프로세스는 사용자가 직접 실행하고, 일반적으로 사용자의 작업을 위한 목적으로 사용됩니다. 예를 들어, 긴 시간이 걸리는 작업이 있다면, 백그라운드에서 실행하여 터미널을 계속 사용할 수 있습니다.
4.3 데몬 프로세스와 백그라운드 프로세스의 차이점
항목 | 데몬 프로세스 | 백그라운드 프로세스 |
정의 | 컴퓨터가 작동하면서 필요한 서비스를 제공하는 프로그램 | 긴 시간이 걸리는 작업을 실행하는 프로그램 |
실행 시점 | 컴퓨터가 켜질 때 자동으로 실행되거나, 관리자가 따로 실행 | 사용자가 직접 실행하며, 화면에 보이지 않고 실행됨 |
예시 | 인터넷 연결, 시간 동기화 등 | 큰 파일 다운로드, 영상 변환 등 |
데몬 프로세스는 시스템이 필요로 하는 서비스를 제공하며, 주로 자동으로 실행되는 반면, 백그라운드 프로세스는 사용자가 실행하는 작업 중 일부가 뒷단에서 실행되는 것입니다. 이렇게 표로 정리하면 이해하기 더 쉬울 것입니다.
더 읽어보기
데몬 프로세스와 백그라운드 프로세스의 주요 차이점은 실행 목적과 관리 방식입니다.
데몬 프로세스는 시스템 서비스를 제공하거나 자원을 관리하는 데 사용되며, 시스템 시작 시에 자동으로 실행되거나 시스템 관리자에 의해 수동으로 실행됩니다.
반면, 백그라운드 프로세스는 사용자의 작업을 위한 목적으로 사용되며, 사용자가 직접 실행합니다.
둘 다 사용자와 상호작용하지 않고, 리눅스 시스템의 백그라운드에서 실행되지만, 실행 목적과 관리 방식에서 차이가 있습니다. 이러한 차이를 이해하고 적절한 프로세스 유형을 선택하여 사용하면, 리눅스 시스템을 효율적으로 관리할 수 있습니다.
5. 부트 로더
부트 로더는 컴퓨터가 켜질 때 가장 먼저 실행되는 소프트웨어입니다. 부트 로더의 주요 역할은 운영 체제를 메모리에 올리고 실행하는 것입니다. 컴퓨터의 전원이 켜지면 BIOS(기본 입출력 시스템) 또는 UEFI(통합 확장 펌웨어 인터페이스)가 실행되고, 이후 부트 로더가 실행됩니다.
부트 로더는 하드웨어와 운영 체제 사이에서 중요한 역할을 하며, 여러 운영 체제가 설치된 경우 선택할 수 있도록 도와줍니다. 이를 통해 사용자는 원하는 운영 체제를 선택하여 부팅할 수 있습니다.
리눅스에서는 여러 가지 부트 로더가 사용되고 있습니다. 대표적인 리눅스 부트 로더로는 다음과 같은 것들이 있습니다.
- GRUB (GRand Unified Bootloader): 가장 널리 사용되는 리눅스 부트 로더로, 여러 운영 체제 간의 부팅을 지원하며 환경 설정이 쉽습니다.
- LILO (Linux Loader): 오래된 리눅스 부트 로더로, 현재는 거의 사용되지 않지만, 이전에는 많이 사용되었습니다.
- Syslinux: 가벼운 환경에서 사용되는 부트 로더로, USB 드라이브 또는 네트워크 부팅에 적합합니다.
부트 로더는 컴퓨터가 부팅되는 과정에서 가장 중요한 역할을 하므로, 정확한 설정과 관리가 필요합니다.
'Computer Science > UNIX & LINUX' 카테고리의 다른 글
Logrotate 살펴보기: 리눅스 로그관리 (0) | 2023.04.11 |
---|---|
소프트웨어 관리 (0) | 2023.03.30 |
파일 시스템 & 디스크 관리 (0) | 2023.03.30 |
프로세스 관리 (0) | 2023.03.30 |
파일 접근 권한 관리 (0) | 2023.03.30 |
댓글