PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 리눅스부팅과정.pptx

리눅스 프로세스 관리

PowerPoint 프레젠테이션

Chapter 06. 프로세스관리하기

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Solaris Express Developer Edition

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

LN_5_Rootfs

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

System Recovery 사용자 매뉴얼

휠세미나3 ver0.4

Microsoft PowerPoint - LN_10_rootFS.ppt [호환 모드]

PowerPoint 프레젠테이션

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

1 Live CD(USB) 란? 1.1 Live CD(USB) 란? LiveCD(USB) 란 CD( 또는 USB) 를하드디스크로인식하여해당매체를기반으로동작하는운영체제를말한다. 즉 CD에설치된운영체제이다. 이는자신의 PC의하드디스크에설치된내용은 CD에그대로복사하였다고생각

Microsoft PowerPoint - 07-EDU-LinuxUser-3.ppt

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBABFCD20BBE7BFEBC0DA20B8EDB7C920C0CDC8F7B1E22E >

6주차.key

Gentoo linux 설치기록

OnTuneV3_Agent_Install

시험종목 제 회리눅스마스터 급 차 시험일자 토 분 수검자기재사항및감독자확인 수검번호 감독자확인 성 명 주민번호 수검자유의사항 수검자는신분증을지참하여야시험에응시할수있습니다 카드는컴퓨터용수성사인펜 검정색 을사용하여작성하여야합니다 수검자는 카드작성시유의사항 을반드시숙지한후작

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Chapter 05. 파일접근권한관리하기

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

01Àå

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Slide 1

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft PowerPoint - IRC_User_Manual.ppt

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - unix02.ppt [호환 모드]

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

문서 대제목

[03] 로그관련명령어 # lastlog /var/log/lastlog 파일의내용을보여주는명령어 /etc/passwd 파일에선언되어있는게정중로그인이되는계정만접근한흔적이남아야한다. 사용자명 포트 ~ 로부터 최근정보 root pts/ 금 10월

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

Clover 부트로더를 이용한 해킨토시 설치방법

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint - ch07.ppt

4. SELinux 상태확인 ( 상세 ) # sestatus v SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy

Abstract View of System Components

망고100 보드로 놀아보자-4

PRO1_04E [읽기 전용]

CD 무결성체크는 SKIP 을해도좋습니다. Next 버튼을누릅니다. Next 버튼을누릅니다.

untitled

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

DE1-SoC Board

리눅스 커널 소개

Microsoft PowerPoint - 09_(Linux)_(Fundamental)_System_Management

WiBro 단말규격

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Adobe Flash 취약점 분석 (CVE )

Copyright 2006 Hewlett-Packard Development Company, L.P. 본설명서의내용은사전통지없이변경될수있습니다. HP 제품및서비스에대한유일한보증은제품및서비스와함께동봉된보증서에명시되어있습니다. 본설명서에는어떠한추가보증내용도들어있지않습니다.

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

Solaris 9 (x86) Installation Guide for VMware 7 Writer : 이경호

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Microsoft Word - PLC제어응용-2차시.doc

menu_10p_all_161020_cs6

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

AORUS 노트북을 구매 하신 것을 축하 드립니다. 이 설명서는 당신이 새로 구매한 노트북을 처음 세팅 하는데 도움을 줄 것입니다. 마지 막 제품의 스펙은 당신 의 구매 시점에 따라 다를 수 있습니다. 이는 어로스사가 사전 서면의 통보 없이 변경할 수 있는 권리를 가지

I 안전 지침 다음 안전 지침을 이용해 사용자 자신과 북톱(Booktop)를 보호하십 시오. M1022 북톱(Booktop) 컴퓨터를 사용할 때 주의: 휴대용 컴퓨터를 신체 위에 직접 올려놓고 장시간 동 안 사용하지 마십시오. 장시간 작동으로 인해 컴퓨터 밑부 분에서

망고 M 카메라 포팅 가이드

PowerPoint 프레젠테이션

2-11Àå

Remote UI Guide

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

chapter4

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - comp_prac_081223_2.pptx

작성자 : 기술지원부 김 삼 수

untitled

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

RVC Robot Vaccum Cleaner

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

벤처연구사업(전동휠체어) 평가

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Microsoft Word - Armjtag_문서1.doc

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

Microsoft PowerPoint - 02_Installation

05Àå

Sena Technologies, Inc. HelloDevice Super 1.1.0

Tablespace On-Offline 테이블스페이스 온라인/오프라인

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Smart Power Scope Release Informations.pages

Transcription:

Chapter 08. 리눅스의부팅과종료

00. 개요 01. 리눅스시스템의부팅 02. init 프로세스와런레벨 03. 리눅스시스템의종료 04. 데몬프로세스 05. 부트로더

리눅스시스템의부팅과정을이해하고부트로더의역할을설명할수있다. init 프로세스의역할을설명할수있다. init 프로세스와관련된스크립트를설명할수있다. 스크립트를사용하여서비스를시작하고종료할수있다. 런레벨이무엇인지설명하고런레벨을변경할수있다. 리눅스시스템을종료할수있다. 데몬을이해하고수퍼데몬의역할을설명할수있다. 단일사용자모드로부팅할수있다. 긴급상황에서계정의암호를복구할수있다.

리눅스실습스터디맵

00 개요 [ 그림 8-1] 8 장의내용구성

01 리눅스시스템의부팅 리눅스시스템의부팅과정 바이오스단계 PC 의전원스위치를켜서부팅하면제일먼저바이오스 (BIOS, basic input/output system) 가동작 바이오스는 PC 에장착된기본적인하드웨어 ( 키보드, 디스크등 ) 의상태를확인한후부팅장치를선택하여부팅디스크의첫섹터에서 512 바이트를로딩 이 512 바이트가마스터부트레코드 (master boot record, MBR): 2 차부팅프로그램 ( 부트로더 ) 의위치저장

01 리눅스시스템의부팅 부트로더단계 바이오스단계에서 MBR 는부트로더를찾아메모리에로딩 부트로더는여러운영체제중에서부팅할운영체제를선택할수있도록메뉴를제공 부트로더는리눅스커널을메모리에로딩 리눅스커널은 /boot 디렉터리아래에 vmlinuz-버전명 의형태로제공 리눅스의대표적인부트로더로는 GRUB와 LILO user1@myubuntu:~$ ls /boot/vm* /boot/vmlinuz-3.11.0-12-generic user1@myubuntu:~$

01 리눅스시스템의부팅 커널초기화단계 커널은가장먼저시스템에연결된메모리, 디스크, 키보드, 마우스등장치들을검사 장치검사등기본적인초기화과정이끝나면커널은 fork를사용하지않고생성되는프로세스와스레드생성 이프로세스들은메모리관리같은커널의여러가지동작을수행 이들프로세스는일반적인프로세스와구분되도록대괄호 ([ ]) 로표시하며, 주로 PID 번호가낮게배정 user1@myubuntu:~$ ps -ef more UID PID PPID C STIME TTY TIME CMD root 1 0 0 12:46? 00:00:02 /sbin/init root 2 0 0 12:46? 00:00:00 [kthreadd] root 3 2 0 12:46? 00:00:00 [ksoftirqd/0] root 5 2 0 12:46? 00:00:00 [kworker/0:0h] root 7 2 0 12:46? 00:00:00 [migration/0] root 8 2 0 12:46? 00:00:00 [rcu_bh] root 9 2 0 12:46? 00:00:00 [rcu_sched] root 10 2 0 12:46? 00:00:00 [watchdog/0] root 11 2 0 12:46? 00:00:00 [khelper] root 12 2 0 12:46? 00:00:00 [kdevtmpfs] root 13 2 0 12:46? 00:00:00 [netns] ( 생략 )

01 리눅스시스템의부팅 init 실행단계 init 실행단계에이르면리눅스가본격적으로동작하기시작 기본적으로메시지가보이지않도록하고대신에부트스플래시 (boot splash) 라고하는이미지를출력 부트스플래시화면이진행중일때 ctrl+d 키를누르면메시지가출력되는화면으로전환 [ 그림 8-5] 우분투스플래시화면 [ 그림 8-6] 부팅메시지출력화면

01 리눅스시스템의부팅 부팅후메시지확인 부팅시출력된메시지는 dmesg 명령이나 more /var/log/boot.log 명령으로확인가능 user1@myubuntu:~$ dmesg more [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.11.0-12-generic root =UUID=4c270aab-6780-4f53-87a9-b8824b6d8b50 ro quiet splash [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 [ 0.000000] allocated 2097144 bytes of page_cgroup ( 생략 )

01 리눅스시스템의부팅 1 번프로세스 전통적으로유닉스에서는 init 프로세스가처음생성된프로세스로서 PID 가 1 번 user1@myubuntu:~$ ps -ef more UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:15? 00:00:0 /sbin/init root 2 0 0 11:15? 00:00:00 [kthreadd] root 3 2 0 11:15? 00:00:00 [ksoftirqd/0] ( 생략 ) 로그인프롬프트출력 마지막으로그래픽로그인시스템인 GDM(GNOME display manager) 을동작시키고, 로그인프롬프트출력 [ 그림 8-7] 로그인프롬프트화면

02 init 프로세스와런레벨 init 프로세스 init 프로세스는 PID 가 1 번인프로세스로모든프로세스의조상역할 우분투는자체적으로개발한 upstart 를 init 대신사용하는데, 다만기존의유닉스및리눅스환경과의호환을위해실행파일이름은 init 를유지 init 의동작방식이바뀜에따라전통적으로 init 프로세스와관련된설정파일이었던 /etc/inittab 파일은이제우분투에서사라짐 user1@myubuntu:~$ ls /etc/inittab ls: /etc/inittab 에접근할수없습니다 : 그런파일이나디렉터리가없습니다 user1@myubuntu:~$

02 init 프로세스와런레벨 init 프로세스와스크립트파일 기존의 init 와새로운 upstart 는모두프로세스를실행하거나종료하기위해스크립트파일을사용 /etc/init 디렉터리와 /etc/init.d 디렉터리에같은서비스에대한파일이있다면 /etc/init 디렉터리의스크립트파일이우선적으로적용 upstart 가사용하는작업파일 upstart 와관련된스크립트파일은 /etc/init 디렉터리에 작업명.conf 파일로구성 user1@myubuntu:~$ ls /etc/init acpid.conf mountkernfs.sh.conf alsa-restore.conf mountnfs-bootclean.sh.conf alsa-state.conf mountnfs.sh.conf alsa-store.conf mtab.sh.conf anacron.conf network-interface-container.conf apport.conf network-interface-security.conf atd.conf network-interface.conf avahi-cups-reload.conf network-manager.conf avahi-daemon.conf networking.conf ( 생략 )

02 init 프로세스와런레벨 기존 init 프로세스 init 프로세스가실행하는스크립트파일은 /etc/init.d 디렉터리에위치 user1@myubuntu:~$ ls /etc/init.d README dbus procps single acpid dns-clean pulseaudio skeleton anacron friendly-recovery rc speech-dispatcher apparmor grub-common rc.local ssh apport halt rcs sudo atd irqbalance reboot udev avahi-daemon kerneloops resolvconf umountfs bluetooth killprocs rfkill-restore umountnfs.sh brltty kmod rfkill-store umountroot console-font lightdm rsync unattended-upgrades console-setup networking rsyslog urandom cron ondemand saned x11-common cups postfix sendsigs cups-browsed pppd-dns setvtrgb user1@myubuntu:~$ /etc/rc.d/init.d 디렉터리의 README 파일 : 전통적인 init 스크립트가 systemd 기반으로바뀌었다는것

02 init 프로세스와런레벨 기존 init 스크립트와 upstat 스크립트의관계 /etc/init.d 디렉터리에있는스크립트중일부는 /lib/init/upstart-job 에대한심벌릭링크 upstart-job 은해당서비스의 upstart 스크립트를찾아서실행 user1@myubuntu:~$ ls -l /etc/init.d grep upstart lrwxrwxrwx 1 root root 21 2월 20 21:12 anacron -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 4월 9 2013 atd -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 bluetooth -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 console-font -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 console-setup -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 cron -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 friendly-recovery -> /lib/init/upstar-job lrwxrwxrwx 1 root root 21 2월 20 21:12 kmod -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 resolvconf -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 rfkill-restore -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 rfkill-store -> /lib/init/upstart-job lrwxrwxrwx 1 root root 21 2월 20 21:12 setvtrgb -> /lib/init/upstart-job user1@myubuntu:~$

02 init 프로세스와런레벨 upstart 스크립트시작하고정지하기 initctl [start stop restart reload status] 작업명 [start stop restart reload status] 작업명 start, stop, restart, reload, status 명령은모두 initctl 명령에대한심벌릭링크 user1@myubuntu:~$ ls -l /sbin grep initctl -rwxr-xr-x 1 root root 179012 10월 10 00:05 initctl lrwxrwxrwx 1 root root 7 2월 20 21:12 reload -> initctl lrwxrwxrwx 1 root root 7 2월 20 21:12 restart -> initctl lrwxrwxrwx 1 root root 7 2월 20 21:12 start -> initctl lrwxrwxrwx 1 root root 7 2월 20 21:12 status -> initctl lrwxrwxrwx 1 root root 7 2월 20 21:12 stop -> initctl user1@myubuntu:~$

02 init 프로세스와런레벨 upstart 스크립트시작하고정지하기 initctl list : 전체작업목록출력하기 user1@myubuntu:~$ initctl list avahi-cups-reload stop/waiting avahi-daemon stop/waiting mountall-net stop/waiting mountnfs-bootclean.sh start/running passwd stop/waiting rc stop/waiting rsyslog start/running, process 464 startpar-bridge stop/waiting ( 생략 ) initctl status : 작업상태보기 user1@myubuntu:~$ initctl status rsyslog rsyslog start/running, process 464 user1@myubuntu:~$ status rsyslog rsyslog start/running, process 464 user1@myubuntu:~$

02 init 프로세스와런레벨 upstart 스크립트시작하고정지하기 initctl stop : 작업종료하기 user1@myubuntu:~$ sudo initctl stop rsyslog rsyslog stop/waiting user1@myubuntu:~$ initctl start : 작업시작하기 user1@myubuntu:~$ sudo start rsyslog rsyslog start/running, process 2718 user1@myubuntu:~$ initctl restart : 작업다시시작하기 user1@myubuntu:~$ sudo restart rsyslog rsyslog start/running, process 2732 user1@myubuntu:~$

02 init 프로세스와런레벨 init 스크립트시작하고정지하기 service 스크립트명 [start stop restart status] /etc/init.d/ 스크립트명 [start stop restart status]

02 init 프로세스와런레벨 init 스크립트시작하고정지하기 서비스상태보기 : service 스크립트 status user1@myubuntu:~$ sudo service cups status cups start/running, process 2757 user1@myubuntu:~$ 서비스종료하기 : service 스크립트 stop user1@myubuntu:~$ sudo service cups stop cups stop/waiting user1@myubuntu:~$ 서비스시작하기 : service 스크립트 start user1@myubuntu:~$ sudo service cups start cups start/running, process 2927 user1@myubuntu:~$ 서비스다시시작하기 : service 스크립트 restart user1@myubuntu:~$ sudo service cups restart cups stop/waiting cups start/running, process 2950 user1@myubuntu:~$

02 init 프로세스와런레벨 init 프로세스와런레벨 init 프로세스에서사용하던런레벨 (Run Level) 의개념에대한이해필요 init 는시스템의단계를일곱개로정의하여구분하고각단계에따라셸스크립트를실행하는데, 이단계들을런레벨이라고함 기존유닉스나페도라와달리우분투의런레벨은기본런레벨이 2 번임

02 init 프로세스와런레벨 init 프로세스와런레벨 런레벨 3, 4, 5 번이 2 번과같으므로, rc2.d 디렉터리와 rc3.d, rc4.d, rc5.d 디렉터리의내용이모두같음 user1@myubuntu:/etc$ ls rc*.d ( 생략 ) rc2.d: README S20speech-dispatcher S70dns-clean S99grub-common S20kerneloops S50rsync S70pppd-dns S99ondemand S20postfix S50saned S75sudo S99rc.local rc3.d: README S20speech-dispatcher S70dns-clean S99grub-common S20kerneloops S50rsync S70pppd-dns S99ondemand S20postfix S50saned S75sudo S99rc.local rc4.d: README S20speech-dispatcher S70dns-clean S99grub-common S20kerneloops S50rsync S70pppd-dns S99ondemand S20postfix S50saned S75sudo S99rc.local rc5.d: README S20speech-dispatcher S70dns-clean S99grub-common S20kerneloops S50rsync S70pppd-dns S99ondemand S20postfix S50saned S75sudo S99rc.local ( 생략 ) user1@myubuntu:/etc$

02 init 프로세스와런레벨 init 프로세스와런레벨 런레벨별로실행하는스크립트파일은 /etc/init.d 디렉터리에있는파일에대한심벌릭링크 user1@myubuntu:~$ ls -l /etc/rc2.d 합계 4 -rw-r--r-- 1 root root 677 6 월 5 2013 README lrwxrwxrwx 1 root root 20 2 월 20 21:12 S20kerneloops ->../init.d/kerneloops lrwxrwxrwx 1 root root 17 2 월 24 14:19 S20postfix ->../init.d/postfix lrwxrwxrwx 1 root root 27 2 월 20 21:12 S20speech-dispatcher ->../init.d/speechdispatcher lrwxrwxrwx 1 root root 15 2 월 20 21:12 S50rsync ->../init.d/rsync lrwxrwxrwx 1 root root 15 2 월 20 21:12 S50saned ->../init.d/saned lrwxrwxrwx 1 root root 19 2 월 20 21:12 S70dns-clean ->../init.d/dns-clean lrwxrwxrwx 1 root root 18 2 월 20 21:12 S70pppd-dns ->../init.d/pppd-dns lrwxrwxrwx 1 root root 14 2 월 20 21:12 S75sudo ->../init.d/sudo lrwxrwxrwx 1 root root 21 2 월 20 21:12 S99grub-common ->../init.d/grub-common lrwxrwxrwx 1 root root 18 2 월 20 21:12 S99ondemand ->../init.d/ondemand lrwxrwxrwx 1 root root 18 2 월 20 21:12 S99rc.local ->../init.d/rc.local user1@myubuntu:~$

02 init 프로세스와런레벨 init 프로세스와런레벨 런레벨변경하기 init는 1번프로세스의이름이기도하지만 init 프로세스의런레벨을바꾸는명령으로도사용 init를명령으로실행하면실제로는 /sbin/telinit가실행 init로런레벨을변경하기위해서는바꾸려는런레벨을숫자로지정 user1@myubuntu:~$ sudo init 1 기본런레벨지정하기 우분투에서기본런레벨은 /etc/init/rc-sysinit.conf 파일의 DEFAULT_RUNLEVEL 변수에지정 user1@myubuntu:~$ cat /etc/init/rc-sysinit.conf ( 생략 ) # Default runlevel, this may be overriden on the kernel command-line # or by faking an old /etc/inittab entry env DEFAULT_RUNLEVEL=2 ( 생략 ) user1@myubuntu:~$ 현재런레벨확인하기 : runlevel 명령 user1@myubuntu:~$ runlevel N 2 user1@myubuntu:~$

03 리눅스시스템의종료 리눅스를종료하는방법 shutdown 명령을사용한다. halt 명령을사용한다. poweroff 명령을사용한다. 런레벨을 0이나 6으로전환한다. reboot 명령을사용한다. 전원을끈다 -> 최후의수단

03 리눅스시스템의종료 shutdown 명령사용하기 리눅스시스템을가장정상적으로종료하는방법 shutdown 명령으로시스템즉시종료하기 -h 옵션과함께현재시간으로지정 user1@myubuntu:~$ sudo shutdown -h now

03 리눅스시스템의종료 shutdown 한다는메시지보내고종료하기 시스템을종료할때 shutdown 명령으로메시지를보낼수있음 사용자들이메시지를받고정리할시간이필요하므로시간을 now 로지정하면안되고특정시간을지정 예 : 2 분후에종료한다는메시지발송 user1@myubuntu:~$ sudo shutdown -h +2 "System is going down in 2 min" 사용자터미널출력 user1@myubuntu:~$ Broadcast message from user1@myubuntu (/dev/pts/1) at 23:31... The system is going down for halt in 2 minutes! System is going down in 2 min shutdown 명령으로시스템재시작하기 : -r 옵션사용 user1@myubuntu:~$ sudo shutdown -r +3 Broadcast message from user1@myubuntu (/dev/pts/1) at 23:32... The system is going down for reboot in 3 minutes!

03 리눅스시스템의종료 shutdown 명령취소하기 : -c 옵션 user1@myubuntu:~$ sudo shutdown -c 앞의 3 분후재시작명령취소할경우메시지출력 shutdown: Shutdown cancelled shutdown 메시지만보내기 : -k 옵션 user1@myubuntu:~$ sudo shutdown -k 2 Broadcast message from user1@myubuntu (/dev/pts/1) at 23:35... The system is going down for maintenance in 2 minutes!

03 리눅스시스템의종료 런레벨변경하기 런레벨을 0 으로바꾸면시스템이종료 user1@myubuntu:~$ sudo init 0 재시작하려면런레벨을 6 으로변경 user1@myubuntu:~$ sudo init 6

03 리눅스시스템의종료 기타시스템종료명령 시스템을종료하거나재시작하기위해사용할수있는명령 : halt, poweroff, reboot halt 와 poweroff 는 reboot 명령의심벌릭링크 user1@myubuntu:~$ ls -l /sbin/reboot -rwxr-xr-x 1 root root 13896 10 월 10 00:05 /sbin/reboot user1@myubuntu:~$ ls -l /sbin/halt lrwxrwxrwx 1 root root 6 2 월 20 21:12 /sbin/halt -> reboot user1@myubuntu:~$ ls -l /sbin/poweroff lrwxrwxrwx 1 root root 6 2 월 20 21:12 /sbin/poweroff -> reboot user1@myubuntu:~$ halt, reboot, poweroff 명령은 /var/log/wtmp 파일에시스템종료기록을남기고시스템을종료하거나재시작 사용할수있는옵션 -w : 실질적으로재시작하거나종료하지는않지만 wtmp 파일에기록을남긴다. -f : 강제로명령을실행하며 shutdown을호출하지않는다. -p : 시스템의전원을끈다.

04 데몬프로세스 데몬 (daemon) 리눅스의백그라운드에서동작하면서특정한서비스를제공하는프로세스 리눅스시스템에서동작하는각종서비스를제공하는프로세스들이바로데몬 데몬의동작방식 독자형 (standalone) 시스템의백그라운드에서서비스별로항상동작 자주호출되는데몬이아니라면시스템의자원을낭비할우려 수퍼데몬에의한동작방식 평소에는수퍼데몬만동작하다가서비스요청이오면수퍼데몬이해당데몬을동작시킴 독자형보다는서비스에응답하는데시간이약간더걸릴수있지만자원을효율적으로사용한다는장점 수퍼데몬 유닉스에서수퍼데몬의이름은 inetd 페도라에서는보안기능이포함된 xinetd를사용

04 데몬프로세스 데몬의조상 : init와커널스레드데몬 init 데몬 대부분의프로세스의조상프로세스 pstree 명령으로확인 user1@myubuntu:~$ pstree init NetworkManager dhclient dnsmasq 3*[NetworkManager] accounts-daemon 2*[accounts-daemon] acpid at-spi-bus-laun dbus-daemon 3*[at-spi-bus-laun] at-spi2-registr at-spi2-registr atd bluetoothd colord 2*[colord] cron cups-browsed ( 생략 )

04 데몬프로세스 커널스레드데몬 커널의일부분을프로세스처럼관리하는데몬 ps 명령으로확인했을때대괄호 ([ ]) 로둘러싸여있는프로세스들 예전에는대부분 k로시작했으나요즘은이를반드시준수하지는않음 커널데몬은대부분입출력이나메모리관리, 디스크동기화등을수행하며대체로 PID가낮은번호로할당 커널데몬을동작시키는조상데몬은커널스레드데몬 (kthreadd): PID 2번 user1@myubuntu:~$ ps -ef more UID PID PPID C STIME TTY TIME CMD root 1 0 0 23:38? 00:00:01 /sbin/init root 2 0 0 23:38? 00:00:00 [kthreadd] root 3 2 0 23:38? 00:00:00 [ksoftirqd/0] root 5 2 0 23:38? 00:00:00 [kworker/0:0h] root 7 2 0 23:38? 00:00:00 [migration/0] root 8 2 0 23:38? 00:00:00 [rcu_bh] root 9 2 0 23:38? 00:00:00 [rcu_sched] root 10 2 0 23:38? 00:00:00 [watchdog/0] root 11 2 0 23:38? 00:00:00 [khelper] root 12 2 0 23:38? 00:00:00 [kdevtmpfs] ( 생략 )

04 데몬프로세스 주요데몬

05 부트로더 GRUB 의개요 GRand Unified Bootloader 의약자로, 리눅스의전통적인부트로더인 LILO 의단점을보완하여 GNU 프로젝트의일환으로개발 GRUB 는 LILO 에비해다음과같은장점을가지고있음 LILO 는리눅스에서만사용이가능하지만 GRUB 는윈도에서도사용할수있다. LILO 에비해설정과사용이편리하다. 부팅시에명령을사용하여수정이가능하다. 멀티부팅기능을지원한다. GRUB 의가장최신버전은 GRUB2 로우분투에서기본부트로더로사용중

05 부트로더 GRUB2 관련디렉터리와파일 /boot/grub2/grub.cfg 파일 : 기존의 menu.lst 파일을대체하는기본설정파일 user1@myubuntu:~$ more /boot/grub/grub.cfg # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then set have_grubenv=true load_env fi set default="0" if [ x"$feature_menuentry_id" = xy ]; then menuentry_id_option="--id" else menuentry_id_option="" fi ( 생략 )

05 부트로더 GRUB2 관련디렉터리와파일 /etc/grub.d 디렉터리 : GRUB 스크립트를가지고있으며 GRUB 의명령이실행될때순서대로읽혀 grub.cfg 파일이생성 user1@myubuntu:~$ ls /etc/grub.d 00_header 10_linux 20_memtest86+ 30_uefi-firmware 41_custom 05_debian_theme 20_linux_xen 30_os-prober 40_custom README user1@myubuntu:~$ /etc/default/grub 파일 : GRUB 메뉴설정내용이저장 user1@myubuntu:~$ more /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" ( 생략 )

05 부트로더 단일사용자모드로부팅하기 1 시스템재시작하기 : 부팅할때 GRUB 메뉴초기화면이출력 [ 그림 8-9] GRUB 메뉴초기화면

05 부트로더 단일사용자모드로부팅하기 2 GRUB 편집모드로전환하기 : GRUB Boot Menu 가출력될때신속하게 e 키를눌러서편집모드로전환 [ 그림 8-10] GRUB 편집화면

05 부트로더 단일사용자모드로부팅하기 3 단일사용자모드로수정하기 리눅스커널정보가있는행에서 ro quiet splash $vt_handoff 를 rw init=/bin/bash 로수정 [ 그림 8-11] 단일사용자모드로부팅하기위해커널항목수정

05 부트로더 단일사용자모드로부팅하기 4 F10 키를눌러재시작하면바로 root 계정으로동작 [ 그림 8-12] root 계정화면

05 부트로더 복구모드로부팅하기 어떤이유에서든우분투가부팅되지않는다면복구모드로부팅하는것이유용 복구모드에서는 root 계정으로로그인하여시스템의복구에필요한작업을수행할수있음 1 시스템을재시작하고 GRUB 메뉴초기화면에서 Advanced options for Ubuntu 를선택 [ 그림 8-13] 복구모드선택화면

05 부트로더 복구모드로부팅하기 2 복구메뉴화면 Ubuntu, 그리고 Linux 3.11.0-12-generic ( 복구모드 ) 를선택하면부팅과정이진행되다가복구메뉴화면이나온다. 이메뉴에서 Drop to root shell prompt 를선택 [ 그림 8-14] 복구메뉴선택화면

05 부트로더 복구모드로부팅하기 3 Drop to root shell prompt 를선택하면 root 프롬프트가출력 [ 그림 8-15] root 프롬프트출력화면

05 부트로더 복구모드로부팅하기 4 root 프롬프트가출력되면복구작업가능 root 파일시스템이읽기전용으로마운트되었으므로읽기, 쓰기가가능하도록다시마운트하고작업 root@myubuntu:~# mount -o remount,rw / 5 작업이완료되면 reboot -f 명령으로리눅스를재시작