-
프로세스의 구조
- 리눅스 프로세스는 핵심이라고 할 수 있을 정도로 핵심이니 잘 알아 둘 것!
- 리눅스 프로세스는 부모와 자식 관계로 구성되어 있는데 어느 하나라도 관계가 깨져있는 프로세스가 없음.
==> 서로 끈끈하게 연결
systemd 가 가장 처음에 만들어진 프로세스
ex) ~] pstree | grep bash (bash의 구조를 보여주세요)
|-sshd-+-sshd---sshd---bash-+-grep(bash의 자식들)ex)
~] wc
1 2 3 4 5
6 7 8 9 10
2 10 21 (라인 수, 단어 수, 문자 수(공백문자포함))
~] wc < /etc/hosts (원래 wc(word count)는 키보드로 입력받는 건데 파일명을 입력하면 파일의 정보도 숫자로 알려줌)
2 10 158ex)
ls -l ls.out
-rw-rw-r--. 1 cloud cloud 79 May 23 13:09 ls.out
~] ls -l ls.out > ls.ok ==>(ls.out을 ls.ok라는 파일로 저장해주세요)
~] cat ls.ok
-rw-rw-r--. 1 cloud cloud 79 May 23 13:09 ls.out==> '>' 이 기호로 인해서 파일에 저장을 하고 출력도 함
~] ls -l ls.out ls1.out > ls.ok
ls: cannot access ls1.out: No such file or directory
~] cat ls.ok
-rw-rw-r--. 1 cloud cloud 79 May 23 13:09 ls.out
~] ls -l ls.out ls1.out 2> ls.ok
-rw-rw-r--. 1 cloud cloud 79 May 23 13:09 ls.out
~] cat ls.ok
ls: cannot access ls1.out: No such file or directory~] ls -l ls.out ls1.out > ls.ok 2>&1 ==>(ls1.out을 1번 리다이렉트로 지정해주시고 2번 리다이렉트는 1번으로)
~] cat ls.ok
ls: cannot access ls1.out: No such file or directory
-rw-rw-r--. 1 cloud cloud 79 May 23 13:09 ls.out- 앞에 있는 명령 1번 디스크립터와 뒤에 0번 디스크립터가 파이프로 연결 됨.
~] ls -l /tmp | wc -l (ls의 프로세스와 wc의 프로세스가 결합)
=>42- cp, rm 명령 처럼 뒤에 파일명이 붙어야 하는 명령어들은 | (파이프) 뒤에 쓸 수 없음
이유는 파이프 뒤에는 파일명이 붙을 수 없기 때문.
포그라운드 프로세스와 백그라운드 프로세스
- jobs 명령어로 현재 실행중인 프로세스와 번호를 볼 수 있음
- 이거를 포그라운드로 바꾸려면 fg %1 명령 같은 것으로 변경 가능
- 포그라운드를 종료하려면 ctrl + c 로 종료
- 백그라운드를 종료하려면 kiil %번호 -> terminated (서서히 종료) 또는 ^Z -> (stop)으로 변경가능
- 프로세스간의 관계도 확인할 수 있음
TASK_RUNNING : 실행을 위한 준비 또는 실행 상태
TASK_INTERRUPTIBLE : 이벤트 완료를 기다리는 상태, 중단가능
TASK_UNINTERRUPTIBLE: 장치로부터의 입출력을 기다리는 SLEEP 상태, 중단시킬 수 없음
TASK_STOPPED : 프로세스의 수행을 멈춤
TASK_ZOMBIE : 프로세스 종료 후 부모프로세스의 처리를 기다리는 상태
DEAD: 프로세스 종료
시그널 종류
* QUIT 라는 시그널만 그냥 종료가 아닌 core 파일 생성 후 종료
=> core 파일을 못만드는 경우도 있는데 이는 core 파일의 사이즈를 제한 시켜놔서 그럴 수 있음
그럴 때는 ulimit -c unlimited 명령어 입력 후 포그라운드 실행해서 ctrl + \ 하면 생성 됨.
==> core 파일은 관리상 불필요해서 막아 논 것.
프로세스 강제 종료
- 프로세스가 비정상적으로 수행되거나 잘못 수행한 경우 강제 종료할 필요가 있음.
'리눅스' 카테고리의 다른 글
리눅스 네트워크 구성과 네트워크 기본 도구 (0) 2022.05.26 리눅스 프로세스 모니터링과 예약관리 (0) 2022.05.26 리눅스 파일 다루기(2) (0) 2022.05.26 리눅스 파일 및 문자열 검색 (0) 2022.05.25 리눅스 파일 권한 다루기 (0) 2022.05.25