꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

시스템 프로그래밍

쉘 사용법 - 리눅스 프로세스

gold_dragon 2021. 4. 30. 13:42

바이너리란 코드 이미지라 불리기도 하며 실행 파일을 말합니다. 저장 매체에 저장돼 있는 파일을 바이너리라 합니다. 프로세스는 모든 코드가 메모리에 올라간 상태에서 CPU에서 한 줄 한 줄 실행 중인 프로그램을 말합니다.

 

리눅스는 기본적으로 다양한 프로세스가 실행됩니다. 여러 프로그램이 서로 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델입니다.

foreground process / background process

foreground process : 쉘(shell)에서 해당 프로세스 실행을 명령한 후, 해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못하는 프로세스입니다.

 

background process: 사용자 입력과 상관없이 실행되는 프로세스입니다. 쉘(shell)에서 해당 프로세스를 실행할 때 맨 뒤에 &를 붙여줍니다.

ex) find / -name '*.py' > list.txt &

foreground process 제어

ctrl + z: foreground 프로세스를 실행 중지 상태(suspend 모드)로 변경합니다.

중지된 프로세스는 bg 명령으로 background 프로세스로 실행될 수 있습니다.

jobs 명령어: 백그라운드로 진행 또는 중지된 상태로 있는 프로세스를 보여줍니다.

ctrl + c: 프로세스 작업을 취소합니다. 운영체제 소프트웨어 인터럽트가 해당 프로세스에 보내집니다.

 

ps [option(s)]

패스트캠퍼스 시스템 프로그래밍 강의 참조

 

프로세스 상태를 확인할 수 있는 명령어입니다.

 

데몬 프로세스(demon process)

사용자 모르게 시스템 관리를 위해 실행되는 프로세스로 보통 시스템이 부팅될 때 자동 실행됩니다.

 

kill

프로세스를 종료할 수 있는 명령어입니다.

1. kill % 작업번호 (job number)

2. kill 프로세스 ID(pid)

3. 작업 강제 종료 옵션 -9

ex)

kill -9 57