2015년 8월 2일 일요일

리눅스 서버 알아보기_06. 프로세스

1. 프로세스 의미
***이전 내용 확인 ***
*사용자의 경우 uid를 보유하고 uid를 key로 활용함
        root -> 0
        일반 유저 -> 500번부터 부여됨
   사용자를 그룹으로 묶기위해서는
>group 560(gid) 로 그룹 아이디 부여가능

*파일의 경우 inode 를 보유하고 이를 key로 활용함


***프로그램 : 정적인 상태, 실행가능한 파일
***프로세스 : 동적인 상태, 프로그램이 실행되어
               메모리에 적제되어 있는 상태
               PID 단위로 실행된다.
          PID는 커널이 자동으로 할당함

>ps -ef|grep bash (로 확인 가능)
root 1978 1972 0 11:11 tty1 00 ./.. -bash
.....
여기서 1978 , 1972가 pid 임?
    pid가 2개로 보이는데
    이는 프로세스 특징으로
   (1) 자신을 낳은 프로세스가 있음
   (2) 프로세스는 자신의 자식을 생성 할 수 있다.
   (3) init 프로세스가 가장 상위 프로세스다.
   (4) 자신의 부모id 즉 ppid를 알고(보유) 하고 있다.
 - 앞의 번호가 부모, 뒤의 번호가 본인꺼

>ps tree (프로세스 구조 확인 가능)
init -+- anacron
   .......

프로세스의 상태
   (1) Ready    (대기중인 프로세스들, 대기번호를 받음)
   (2) Running (현재 처리중 인 프로세스 보통 1개임)
   (3) Waiting  (오래 걸림 + IO, 인터넷등을 의존
                    , 하드디스크 찾기 등)
          (일부의 프로세스가 (3)항목으로 오지 않는다.)
          (일부로 (3) 모드로 보낼수(백드라운드) 있다.)

2. 백그라운드, 포그라운드

*** 참고사항
>pstree -pn (프로세스 id도 포함하여 보여준다.)
   뭔가 지우려고 할때 하위까지 자동으로 kill로
    처리가 안되는 경우 하위 프로세스부터 정리할
    필요가 있을때도 있음.

  1) 유저와 인터렉티브 한 포그라운드 프로세스

종료시 일반적인 진행 방법
.....(뭔가 실행중)
crtl+c ☜
>
or ctrl + z (잠깐멈춤)
>bg(백그라운드로 보냄)

실행방법
>find / -name services   (포그라운드)

  2) 뒤에서 일하는 경우 백그라운드 프로세스
 실행시간이 오래걸리는 경우 사용

종료시 일반적인 진행 방법
>kill pid  ☜
or
>kill daemonName ☜

실행방법
>find / -name services & (백그라운드)
    -- 실행이 끝나면 done 라는
         메시지와 같이 화면에 보여준다.

>jobs (백그라운드 작업 내용을 보고 싶을때)
>fg 작업번호(백그라운드 작업을
                  포그라운드로 보내고자 할때)

  3) 예제
> yes >/dev/null &
> fg
ctrl+z
>bg
kill id

> yes >/dev/null


  4) 기타
>tar cf system.tar /* &

3. 프로세서 정리

>cat /etc/passwd 파일
사용자명   password   uid gid 사용자정보 홈디렉토리 쉘
여기서 password는 없음 -->

>cat /etc/shadow 파일
여기에서 암호화된 상태로 password 파일을 관리함
  1)사용자 추가
userad john
passwd john
1
1

  2) 비밀번호 위치확인
>cat /etc/passwd|grep john
john:x:~~~~
>cat /etc/shadow|grep john
john:~~~~.

>pwunconv (password를 passwd에서 관리하도록 변경)
>cat /etc/passwd|grep john
john:~~~:

==> 여기서 passwd 파일의 권한은 root 이외에는 읽기
         권한만 보유하고 있음
기본적으로
john -> login 프로세스가 john 권한을 확인
       -> 쉘이 login이 보유한 사용자 권한을 확인(물려받음)
       -> ls, vi 등등 명령어도 john 권한을 물려받음

passwd 도 john 권한을 봤을때
   passwd 파일이 수정되지 않아야 맞음
>ls -al /usr/bin/passwd
-r-s--x--x   1 root root ~~~
   s권한은 일부 명령어에 대해서 잠시 root 권한을
    주는것, root 권한으로 실행뒤 다시 권한을 돌림

>pwconv
    (password를 shadow서 따로 관리하도록 변경)

>cd etc/init.d
>./named start
>ps -ef|grep named
~~~
named 2651 ~~
~~
>kill -9 2651

>top   (topaz 등등)
pc 리소스 많이 사용하는 순으로 갱신해서 보여줌
이때는 'q'로 빠져나갈 수 있음

4. 리눅스 시스템 초기화
리눅스 부팅순서
 ROM -> MBR(부팅 메니저의 Lilo , win 의 boot.ini)
         -> 부팅 선택
  -> /파티션을 마운트 -> init 프로세스
         -> /etc/inittab 파일을 읽어들임.
>vi /etc/inittab
   inittab 에서 로그인 유형을 정 할 수 있음
   0 - 바로 끄기
    1 - 싱글 사용자 (암호 변경할 때 , 초기화 할때 등)
   2 - 멀티 유저, 네트웍은 사용하지 않음
   3 - 멀티유저, 네트웍 지원
   4- 사용자 구성용 부팅
   5- x11 (엑스윈도우 실행)
   6- 재부팅
       rc 0~6까지 중에 하나를 실행(run level 결정)

0,6으로 실행시 무한 재부팅 되거나 그냥 꺼짐

 -> /etc/rd.d/rc.sysinit 읽어들임
--> inittab 에서 선택한 부팅 모드에 따라
     (시스템에서 부팅시 시스템 초기화 스크립트가 있음)
>more /etc/rd.d/rc.sysinit
    (쉘 스크립트로 작성되어 있음)

--> /etc/rc.d/rc3.d
    꽤 많은 파일이 있는데 폴더안의 파일을
    다 실행함
    그리고 작성된 파일에 작성 법칙이 있는데
    S60daemon
    S : S는 실행하겠다. K는 실행하지 않겠다.
    60 : 실행순서 숫자가 낮을 수록 빨리 실행
    daemon : 프로세스명칭
   
--> /etc/rc.d/rc.local 파일
   수동으로 시스템을 시작할때 어떤 실행파일들을
   실행시킬지 명시해 주는곳.
     여기에 파일을 등록시 자동 실행이 되게끔 작업 가능

--> 환경설정 파일 , 홈디렉토리 안착

*Lilo 설정하기
vi /etc/lilo.conf   -> 라벨, 시간정도는 수정가능

*패스워드 분실시
  boot:linux 1

댓글 없음:

댓글 쓰기