[유닉스] 시스템 부팅과 종료


시스템 부팅과 종료


init 프로세스

  • init 프로세스가 하는 일
    • 파일 시스템의 구조 검사
    • 파일 시스템 마운트
    • 서버 데몬을 띄움
    • 사용자 로그인을 기다림
    • 사용자가 로그인하면 사용자를 위한 쉘을 띄움

  • /etc/inittab
    • 시스템을 어떤 방식으로 쓰는지에 따라 수행되는 6가지 실행레벨(runlevel) 중에서 init 프로세스가 수행해야 할 행동(action)들을 서술해 놓은 파일

  • rc.sysinit 스크립트 실행
    • init 프로세스는 rc.sysinit 파일을 가장 먼저 실행
    • rc.sysinit 스크립트는 inittab 파일의 정의에 따라, 시스템을 초기화할 때 가장 먼저 한 번만 실행되는 초기화 스크립트
    • 기본 적인 path 설정, swap 영역의 활성화, 디스크 검사(fsck), /etc/hostname 파일의 설정, 시스템 시간 설정 등
  • rc 스크립트 실행
    • init 프로세스는 inittab 파일에 정의된 Default Runlevel에 맞추어 /etc/rc.d/rc 스크립트 실행
  • rc.local 스크립트 실행
    • 실행레벨 2,3,5에서 사용자가 별도로 실행시키길 원하는 데몬을 가지고 있다면 이 스크립트 파일 마지막 부분에 실행하는 코드를 넣어주면 부팅할 때마다 자동으로 데몬 생성


시스템 종료하기

  • 유닉스 시스템은 24시간 서비스를 제공하는 서버로 사용되는 경우가 많기 때문에 시스템을 가능하면 종료하지 않음
  • 시스템을 종료해야 하는 경우
    • 시스템을 새로 설치하거나 업그레이드할 때
    • 내장형 장치를 추가할 때
    • 커널의 구성을 변경할 때
    • 시스템에 이상이 생겨서 진단, 수정, 복구해야 할 때
  • 종료할 때 고려해야 할 사항
    • 현재 사용 중인 사용자들에게 시스템이 종료될 것임을 알림
    • 작업 중인 사용자들이 작업을 중단하고 데이터를 저장할 수 있는 시간을 주어야 함
    • 메모리에 있는 데이터를 디스크로 저장(sync 명령으로 실행)


shutdown

  • root만 사용할 수 있는 명령으로 시스템을 종료할 때 사용
  • 형식 : shutdown [옵션] [메시지]
  • 사용 예 : # shutdown now : 시스템을 즉시 종료

  • 시스템을 재부팅
# shutdown –r now
  • 시스템을 바로 종료
# shutdown –h now
  • 종료 메시지 보내고 5분 후에 종료
# shutdown –h +5 “5분후에 종료합니다.”
  • 종료 메시지 보내고 12:00에 종료
# shutdown –h 12:00 “12:00에 종료합니다.”
  • 시스템에 로그인하고 있는 사용자 계정에 출력되는 메시지
Broadcast message from root (pts/0) Wed Jul 8 19:00:21 2015
The system Ubuntu will be shut down in 1 minute
shutdown system in 60sec


halt

  • shutdown과 같은 명령어
  • /var/log/wtmp 파일에 시스템 종료 기록을 남기고 시스템 종료

# halt
Broadcast message from root (pts/0) Wed Jul 8 19:00:21 2015
The system is going down for system halt NOW !!


init

  • init은 모든 프로세스의 부모 프로세스
  • init에 실행레벨 번호를 지정하면 종료, 단일 사용자 모드, 재부팅
  • 시스템 종료
# init 0
  • 단일 사용자 모드로
# init 1
  • 네트워킹을 사용하는 다중사용자 모드로
# init 3
  • 재부팅
# init 6


sync

  • 대부분의 운영체제는 속도 향상을 위해 데이터를 메모리 내 버퍼에 임시 보관
  • 정상적인 종료 과정을 거치지 않고 시스템을 shutdown시키면 버퍼에 있는 데이터들은 물리적인 하드디스크에 기록되지 못하고 사라짐
  • sync는 버퍼에 있는 디스크 이미지 데이터를 하드디스크로 기록
  • shutdown 등의 동작을 수행하면 자동적으로 sync를 호출
# sync
#