Linux 14 . process 관리

2024. 2. 13. 15:39Linux/CentOS7

이번엔 

리눅스에서 실행되는 process에 대해 알아보자

ping 168.126.63.1 <명령어를 실행해보자

그럼 해당 명령어가 쉬지않고 출력된다.

 

위 사진처럼 ls 라는 명령어를 입력해도 반응이 없다

 

ping 이라는 process가 foreground를 점유하고 있기 때문에

우리는 다른 작업을 할 수 없다.

 

ctrl+c 같은 인터럭트 키로 끼어들기 할 수 있다.

하지만 그러면 쉘을 점유중이던 process가 정지된다.

 

여기서 이 process를 background로 실행 시킬 수 있는 기능이 있다

아주 간단히 명령어 뒤에 & 를 붙여주면 된다

 

그렇게 실행하고 나면 이제 명령어를 입력하면

출력이 되는 것을 볼 수가 있다

하지만 계속 멈추지 않고 ping이 실행되고 있다.

또한 더이상 ctrl+c로 멈춰지지 않는다

 

그럴땐 jobs 명령어를 입력해보자

그럼 위같은 문구가 출력되는데

제일 앞의 숫자[1]이 작업 번호다!

이 숫자를 이용해 background 작업을

foreground로 바꿔보자

 

fg %1  < 명령어를 입력해보자

입력하자마자 ping 168.126.63.1 이라는 문구만 출력되고

프로세스는 계속된다.

ctrl+z를 눌러보자

 

작업번호와 멈췄다는 문구가 나오고 

정말로 멈췄다

 

ctrl+c,z 의 차이는

c는 프로세스를 죽이는 명령어라면

z는 프로세스를 멈추는 명령어다!!!

 

 

만약 명령어를 background로 실행하고 싶다면??

 

bg %1 을 입력해주면 된다

이렇게 다시 진행되기 시작한다.

 

 

다시 ping 명령어를 백그라운드로 실행해보자

ping 168.126.63.1 &

그런다음 현재 세션을 복제 해주자!

복제한 세션에서 

ps aux를 입력해보자

 

ps -프로세스를 확인하는 명령어

a- 모든 프로세스

u- 모든 사용자에 대해

x- 현재 실행중인 것들만

 

그럼 현재 실행중인 모든유저의 모든 프로세스를 출력해준다

정말 많다..

 

이중 중앙에 tty, pts 라는 문구가 보일텐데

tty 는 직접 접속한 것이고

pts 는 원격 접속 한 것이다 

(우리는 현재 xshell로 원격 접속 후 명령어들을 실행했다)

 

 

ps -ef 라는 옵션도 있다

프로세스 ID를 확인할 수 있다

PID : 자신의 ID

PPID : 부모프로세스 ID

 

 

 

위 사진을 보면 

ping 명령어는 PPID가 1151이다

1151은 pts/0 에 -bash 인 것을 볼 수 있다.

 

즉 원격 접속에 의해 bash 쉘(1151)을 실행하고있고

ssh 로 접속했다 (1149)

 

이런식으로 추적도 가능하고

부모 프로세스를 kill하면 자식 프로세스도 같이 kill된다.

 

 

kill 명령어를 알아보자

kill -l 로 옵션목록을 확인해보자

일단 네가지만 확인 해볼 것인데

1 : SIGHUP 프로세스를 재시작 시키는  신호(=시그널)

9 : SIGKILL프로세스를 강제정료 시키는 시그널 = ctrl+c

18 : SIGCONT 중지된 프로세스를 다시 실행시키는 시그널

19 : SIGSTOP 프로세스를 중지시키는 시그널 = ctrl+z

 

 

위의 PID를 보고 kill -9 옵션과 명령어로 

ping 프로세스를 죽여보자

그럼 쉬지않고 진행되던 ping 을 진행중이던 세션에서

죽었다는 명령어가 표시된다

fg, bg 가리지않고 적용 가능하다

 

이런식으로 프로세스를 중지,종료 시킬 수 있다.

 

여담으로 당연히 세션도 kill 명령어로

강제 종료시킬 수 있다!

 

 

이상 프로세스 관리에 대해서 알아보았다!!

'Linux > CentOS7' 카테고리의 다른 글

Linux 16 . ftp 서비스  (0) 2024.02.14
Linux 15 . dhcp 서비스  (1) 2024.02.13
Linux 13 . Package관리  (0) 2024.02.12
Linux 12 . Local Repository  (0) 2024.02.08
Linux 11 . Linux 설치 시 lvm 수동설정  (0) 2024.02.06