[프로세스] 정보
기타 [프로세스]본문
[프로세스 관리]
*프로세스의 생성은 부모 프로세스에서 자식 프로세스가 나오게 되는 계층적 트리 구조(쉽게 말해 피라미드 형태와 유사)를 갖는다 .
init<===커널이후의 최초의 프로세스 , 이밑으로 자식 프로세스가 생성됨
기본적으로 부모 프로세스가 종료되면 자식프로세스도 종료된다. 단, 부모프로세스가 종료되어도 자식 프로세스가 살아서 활동하는 경우가 있는데, 이러한 상태를 좀비상태라 한다. ===>프로세스상태(STAT) 부분참조.
*ps aux |more
ps -ef |more ==> 일반적으로 프로세스를 화면 단위로 끊어 출력하며, 프로세스의 정보도 출력한다.
ps -a : 모든프로세스를 출력
ps -f : 프로세스의 상속관계 출력(즉, 부모프로세스와 자식프로세스의 종속(연관성)을 표시한다.)
(예) #>ps -ef |grep httpd
해설; 프로세스 정보 중에서, httpd라는 문자열을 포함한 모든 프로세스를 화면에 출력함(즉, httpd라는 정보를 검색하는 의미).
===> 실행후... 나오는 데이터 이해 , 옵션 이해
*pstree : 프로세스들 간의 연결구조를 트리 형식으로 출력한다.
*STAT ===> RSDTZ상태위주로 숙지.
R : 실행중 혹은 실행될 수 있는 상태 +(실행대기상태)
S : sleep +(슬립모드)
I : idle(비활동 상태 : BSD, 중간적 상태:sysV)
T : 정지된 상태(suspend) + 종료는 되지 않았으나 메모리상에 상주하며, 동작을 하지 않는 상태.
Z : 좀비프로세스 +(부모 프로세스가 종료되어도 자식 프로세스는 살아서 종료되지 않은 상태)
D : 디스크 관련 대기상태(BSD) ==> 입출력을 기다리는 인터럽트가 불가능한 상태.(즉, 종료 or 취소 등의 조작 불가능)
P : 페이지 관련 대기상태(BSD)
X : 메모리 확보를 위해 대기 중 (sysv)
K : 사용가능한 커널 프로세스(aix)
W : 스왑 out된 상태
> : 우선순위가 인위적으로 높아진 상태
* signal (signal은 명령어가 아님. kill명령을 사용하기 위한 프로세스간의 통신수단일 뿐이다.)
다음의 내용중 각각의 1 2 3 9 ...은, 각각 HUP, INT...이라는 signal이름의 고유한 번호이다.
HUP 1 hangup (실행종료, 로그아웃하거나 모뎀 접속을 끊을때 보내진다)
INT 2 interrupt(실행종료, Ctrl-c)
QUIT 3 Quit(Ctrl-\)
KILL 9 강제종료
SEGV 11 허가되지 않은 메모리 영역에 접근하였다.
TERM 15 가능한한 정상종료
STOP 19 무조건 즉각 정지
TSTP 20 다시실행을 위해 대기
CONT 18 정지된 프로세스를 다시 실행
* 강제 종료 KILL
#> kill -9 <pid> ===> 해당번호의 프로세스 강제 종료
killall <프로세스이름> ==> 해당 프로그램의 모든 프로세스를 종료시킴.
(예) #>killall httpd ==> apache웹서버의 데몬인 httpd프로세스를 모두 종료시킨다.
*포그라운드와 백그라운드
포그라운드 : 화면에 보여주면서 실행되는 상태(입력을 받아들임)
백그라운드 : 화면에 보여주지 않으면서 실행되는 상태(입력X)
suspend : 메모리에 올라가 있지만 정지되어진 상태
cf) ls -IR / > ls.txt 2> /dev/null <enter> <=======의미 물어보기
(설명) ls 명령어를 사용해서 /경로에서 시작되는 패턴을 무시한 결과값을 ls.txt 라는 파일에 저장(끼워넣기)하고, 장치(또는 파티션 중에서 null인값은 포함하지 않는다.
(즉, /(굳이 설명하자면 1단계)에서 하위 2단계(바로 다음단계인 / 다음의 최상위 디렉토리 및 파티션)인 값, 여기에서의 결과값은 /bin, /boot, /home ...의 디렉토리를 검색한 결과를 ls.txt라는 파일에 추가됨. 뒷 부분은 조건(단, 그중에서 null인 값. 즉, 비어있는 디렉토리는 추가하지 않는다.)을 나타낸다. ==> 에고 설명하기 힘드네요. 그냥 영어로 적는게 나았을듯.
***필수참고***: ls 명령어의 옵션 이해하기
a: .(dot)으로 시작되는 파일(히든파일)까지 모두 출력한다.
A: 검색할 경우, ./이나 ../을 검색후 출력결과에 포함하지 않는다.
i: 각각의 파일에 index number(목차번호)를 보여서 출력한다.
I: 적용된 패턴을 무시한 결과값을 보여준다.
r: sort(정렬)옵션을 부여했을 경우에만 역순(내림차순)으로 출력해준다.
S: sort(정렬하기)
R: 서브디렉토리까지 출력
1.fg %번호 : 백그라운드 작업이나 suspend된 작업을 포그라운드로 전환 (번호는 프로세스 번호. 즉, PID를 가리킴)
2.bg %번호 : 포그라운드 작업이나 suspend된 작업을 백그라운드로 전환
3.<ctrl>+<z> : 포그라운드 작업을 suspend 시킴
*Demon
-백그라운드로 실행되면서 서버의 역할을 하거나 그 기능을 도와주는 프로세서
1.standalone 방식 : 부팅시 실행되어 메모리에 계속 상주해있으면서 서비스가 요청되어질때마다 수행됨, 일반적인 데몬실행방법
2.INET 방식 : 서비스가 요청되었을때 프로세스가 되어 서비스해줌.
ex) in.telnetd 이 대표적인예
3.inet demon : 어떠한 서비스를 INET방식으로 할 것인지를 설정하고 tcpwrapper를 작동시킬수 있다. /etc/inetd.conf가 inetd의 설정파일이다.
*top : 시스템의 프로세스에 대한 정보를 실시간으로 보여주고 실행도중 프로세스제어가능
spacebar를 사용해 다른 정보도 검색할 수 있음.
*nice : 프로세스 우선순위 변경(프로세스 실행전 순위변경)
참고: renice(프로세스 실행후 우선순위변경) ===> -값일 경우, +값을 지닌 프로세스보다 우선순위를 지닌다.
*cron프로그램 (중요사항. 필수숙지)
정기적으로 명령이나 프로세스를 스케줄할때 사용.
/etc/crontab 파일에 명령을 실행하려는 시간과 날짜를 지정
시스템이 부팅될때 한번만 시작됨.
ex) 0 9 * * 1 echo Happy Birthday
분 시 일 월 주 명령 <=== 설명
==> "Happy Birthday"를 월요일 아침 9시에 출력시킨다.
*프로세스의 생성은 부모 프로세스에서 자식 프로세스가 나오게 되는 계층적 트리 구조(쉽게 말해 피라미드 형태와 유사)를 갖는다 .
init<===커널이후의 최초의 프로세스 , 이밑으로 자식 프로세스가 생성됨
기본적으로 부모 프로세스가 종료되면 자식프로세스도 종료된다. 단, 부모프로세스가 종료되어도 자식 프로세스가 살아서 활동하는 경우가 있는데, 이러한 상태를 좀비상태라 한다. ===>프로세스상태(STAT) 부분참조.
*ps aux |more
ps -ef |more ==> 일반적으로 프로세스를 화면 단위로 끊어 출력하며, 프로세스의 정보도 출력한다.
ps -a : 모든프로세스를 출력
ps -f : 프로세스의 상속관계 출력(즉, 부모프로세스와 자식프로세스의 종속(연관성)을 표시한다.)
(예) #>ps -ef |grep httpd
해설; 프로세스 정보 중에서, httpd라는 문자열을 포함한 모든 프로세스를 화면에 출력함(즉, httpd라는 정보를 검색하는 의미).
===> 실행후... 나오는 데이터 이해 , 옵션 이해
*pstree : 프로세스들 간의 연결구조를 트리 형식으로 출력한다.
*STAT ===> RSDTZ상태위주로 숙지.
R : 실행중 혹은 실행될 수 있는 상태 +(실행대기상태)
S : sleep +(슬립모드)
I : idle(비활동 상태 : BSD, 중간적 상태:sysV)
T : 정지된 상태(suspend) + 종료는 되지 않았으나 메모리상에 상주하며, 동작을 하지 않는 상태.
Z : 좀비프로세스 +(부모 프로세스가 종료되어도 자식 프로세스는 살아서 종료되지 않은 상태)
D : 디스크 관련 대기상태(BSD) ==> 입출력을 기다리는 인터럽트가 불가능한 상태.(즉, 종료 or 취소 등의 조작 불가능)
P : 페이지 관련 대기상태(BSD)
X : 메모리 확보를 위해 대기 중 (sysv)
K : 사용가능한 커널 프로세스(aix)
W : 스왑 out된 상태
> : 우선순위가 인위적으로 높아진 상태
* signal (signal은 명령어가 아님. kill명령을 사용하기 위한 프로세스간의 통신수단일 뿐이다.)
다음의 내용중 각각의 1 2 3 9 ...은, 각각 HUP, INT...이라는 signal이름의 고유한 번호이다.
HUP 1 hangup (실행종료, 로그아웃하거나 모뎀 접속을 끊을때 보내진다)
INT 2 interrupt(실행종료, Ctrl-c)
QUIT 3 Quit(Ctrl-\)
KILL 9 강제종료
SEGV 11 허가되지 않은 메모리 영역에 접근하였다.
TERM 15 가능한한 정상종료
STOP 19 무조건 즉각 정지
TSTP 20 다시실행을 위해 대기
CONT 18 정지된 프로세스를 다시 실행
* 강제 종료 KILL
#> kill -9 <pid> ===> 해당번호의 프로세스 강제 종료
killall <프로세스이름> ==> 해당 프로그램의 모든 프로세스를 종료시킴.
(예) #>killall httpd ==> apache웹서버의 데몬인 httpd프로세스를 모두 종료시킨다.
*포그라운드와 백그라운드
포그라운드 : 화면에 보여주면서 실행되는 상태(입력을 받아들임)
백그라운드 : 화면에 보여주지 않으면서 실행되는 상태(입력X)
suspend : 메모리에 올라가 있지만 정지되어진 상태
cf) ls -IR / > ls.txt 2> /dev/null <enter> <=======의미 물어보기
(설명) ls 명령어를 사용해서 /경로에서 시작되는 패턴을 무시한 결과값을 ls.txt 라는 파일에 저장(끼워넣기)하고, 장치(또는 파티션 중에서 null인값은 포함하지 않는다.
(즉, /(굳이 설명하자면 1단계)에서 하위 2단계(바로 다음단계인 / 다음의 최상위 디렉토리 및 파티션)인 값, 여기에서의 결과값은 /bin, /boot, /home ...의 디렉토리를 검색한 결과를 ls.txt라는 파일에 추가됨. 뒷 부분은 조건(단, 그중에서 null인 값. 즉, 비어있는 디렉토리는 추가하지 않는다.)을 나타낸다. ==> 에고 설명하기 힘드네요. 그냥 영어로 적는게 나았을듯.
***필수참고***: ls 명령어의 옵션 이해하기
a: .(dot)으로 시작되는 파일(히든파일)까지 모두 출력한다.
A: 검색할 경우, ./이나 ../을 검색후 출력결과에 포함하지 않는다.
i: 각각의 파일에 index number(목차번호)를 보여서 출력한다.
I: 적용된 패턴을 무시한 결과값을 보여준다.
r: sort(정렬)옵션을 부여했을 경우에만 역순(내림차순)으로 출력해준다.
S: sort(정렬하기)
R: 서브디렉토리까지 출력
1.fg %번호 : 백그라운드 작업이나 suspend된 작업을 포그라운드로 전환 (번호는 프로세스 번호. 즉, PID를 가리킴)
2.bg %번호 : 포그라운드 작업이나 suspend된 작업을 백그라운드로 전환
3.<ctrl>+<z> : 포그라운드 작업을 suspend 시킴
*Demon
-백그라운드로 실행되면서 서버의 역할을 하거나 그 기능을 도와주는 프로세서
1.standalone 방식 : 부팅시 실행되어 메모리에 계속 상주해있으면서 서비스가 요청되어질때마다 수행됨, 일반적인 데몬실행방법
2.INET 방식 : 서비스가 요청되었을때 프로세스가 되어 서비스해줌.
ex) in.telnetd 이 대표적인예
3.inet demon : 어떠한 서비스를 INET방식으로 할 것인지를 설정하고 tcpwrapper를 작동시킬수 있다. /etc/inetd.conf가 inetd의 설정파일이다.
*top : 시스템의 프로세스에 대한 정보를 실시간으로 보여주고 실행도중 프로세스제어가능
spacebar를 사용해 다른 정보도 검색할 수 있음.
*nice : 프로세스 우선순위 변경(프로세스 실행전 순위변경)
참고: renice(프로세스 실행후 우선순위변경) ===> -값일 경우, +값을 지닌 프로세스보다 우선순위를 지닌다.
*cron프로그램 (중요사항. 필수숙지)
정기적으로 명령이나 프로세스를 스케줄할때 사용.
/etc/crontab 파일에 명령을 실행하려는 시간과 날짜를 지정
시스템이 부팅될때 한번만 시작됨.
ex) 0 9 * * 1 echo Happy Birthday
분 시 일 월 주 명령 <=== 설명
==> "Happy Birthday"를 월요일 아침 9시에 출력시킨다.
추천
0
0
댓글 3개
앗!
어느새 덧글이^^
관심 주셔서 감사합니다.
20여분 동안 정신 없이 왔다 갔다 하느라...
>>>연재코너 하나 만드시는 것이 어떨런지요.
그 부분은 불가능 할 듯 보이네요.
단편적인 지식(^^)만을 제공하는 것이니까요.
아울러, 제가 운영체제 쪽은 손 뗀지(?) 오래라서요.
>>>이런정보들은 토크박스에 있는것 보다 별도의 공간에 따로 정리되는것이 좋을듯 한데...
이건 가벼운 내용이구요.
토크박스에서 간단히 읽어만 보셔도 되는 내용입니다.
물론, 기본(기초)적인 내용이긴 하지만...
어느새 덧글이^^
관심 주셔서 감사합니다.
20여분 동안 정신 없이 왔다 갔다 하느라...
>>>연재코너 하나 만드시는 것이 어떨런지요.
그 부분은 불가능 할 듯 보이네요.
단편적인 지식(^^)만을 제공하는 것이니까요.
아울러, 제가 운영체제 쪽은 손 뗀지(?) 오래라서요.
>>>이런정보들은 토크박스에 있는것 보다 별도의 공간에 따로 정리되는것이 좋을듯 한데...
이건 가벼운 내용이구요.
토크박스에서 간단히 읽어만 보셔도 되는 내용입니다.
물론, 기본(기초)적인 내용이긴 하지만...
나스카님/// 수고가 많으십니다.
연재코너 하나 만드시는 것이 어떨런지요.
이런정보들은 토크박스에 있는것 보다 별도의 공간에 따로 정리되는것이 좋을듯 한데...
연재코너 하나 만드시는 것이 어떨런지요.
이런정보들은 토크박스에 있는것 보다 별도의 공간에 따로 정리되는것이 좋을듯 한데...
월요일인데 너무 무겁게 출발 하시는듯 ....^^