프로세스에 대해서 정리해보겠습니다. 🙆♂️🙆♂️
프로세스는 쉽게 말해서 프로그램이 실행된 것입니다.
포그라운드 프로세스 vs 백그라운드 프로세스
포그라운드 프로세스는 실행을 하면 화면에서 실행하는 것이 보이는 프로세스이고 백 그라운드 프로세스는 화면에 나타나지 않고 뒤에서 실행되는 프로세스를 말합니다.
실행중인 프로세스를 관리해야 하니까 아이디 번호를 주는데 프로세스 번호(PID)라고 합니다.
그림을 통해 한번 보겠습니다.
cat이라는 명령어를 사용하면 포그라운드 상태가 되어서 입력을 하고 취소를 해주지 않는 이상 다른 작업을 못하게 됩니다. 이럴 때는 백그라운드 상태로 보내주면 좋은데 Ctrl+z를 누르면 백그라운드로 가게 됩니다.
jobs를 통해 지금 백그라운드에 있는 것을 볼 수 있습니다.
다시 포그라운드로 부르고 싶다면 fg 번호를 입력해주면 됩니다.
취소는 Ctrl+c를 해주면 됩니다.
처음부터 백그라운드로 가고 싶다면 맨 뒤에 &를 붙여주면 됩니다.
ps
-현 Process 조회 가능
그냥 ps는 자기가 사용한 프로세스만 볼 수 있어서 ps -ef로 사용을 많이 한다.
PID가 프로세스 번호이고 PPID는 부모 프로세스 번호입니다.
부모 프로세스가 종료되면 당연히 자식 프로세스도 종료가 됩니다.
PID를 안다면 kill이라는 명령어를 사용해서 프로세스를 강제 종료할 수 있습니다.
kill -9 PID (9는 강제 종료를 하겠다는 것인데 그냥 붙여서 사용하면 됩니다.)
만약에 PID 1번을 지우고 싶다면 kill -9 1을 입력하면 됩니다.
ps aux
[root@localhost ~]# ps aux | head
USER PID CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2900 1496 ? Ss 17:40 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 17:40 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 17:40 0:0 [migration/0]
root 4 0.0 0.0 0 0 ? S 17:40 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 17:40 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S 17:40 0:01 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 17:40 0:00 [events/0]
root 8 0.0 0.0 0 0 ? S 17:40 0:00 [cgroup]
root 9 0.0 0.0 0 0 ? S 17:40 0:00 [khelper]
STAT 상태를 보기 위해서 사용한다.
S는 깨울 수 있는 Sleeping 상태라고 생각하면 되고 R은 지금 실행중인 상태입니다.
z는 좀비상태 (지워줘야 한다)
t는 Ctrl+z와 같은 시그널을 통해 멈춘 상태입니다.
ps tree
부모프로세스와 자식프로세스간의 관계를 볼 수 있습니다.
'리눅스 > 내 맘대로 리눅스 기본' 카테고리의 다른 글
리눅스 고정으로 IP 할당 받기 (0) | 2020.02.08 |
---|---|
링크 (0) | 2020.02.08 |
권한 (Permission) (0) | 2020.02.08 |
유저 생성하기 (0) | 2020.02.08 |
리눅스 기본 명령어 (0) | 2020.02.08 |