본문 바로가기
Linux

[Linux] Process

by RTLog 2024. 3. 26.
728x90
반응형

안녕하세요. RTLog입니다.

 

오늘은 Process 관련 명령어들을 작성해볼게요.

Process 

Linux 시스템에서 프로세스는 실행 중인 프로그램의 인스턴스입니다. 프로그램을 실행하면 Linux 커널은 해당 프로그램에 대한 프로세스를 생성합니다. 각 프로세스에는 프로그램 코드, 변수, 스택, 힙, 파일 설명자 및 기타 런타임 리소스가 포함된 자체 메모리 공간이 있습니다.

 

프로세스 실행이 종료되면 종료 상태 또는 종료 코드를 상위/부모 프로세스나 시스템에 반환합니다. 이 종료 코드는 프로세스 실행의 성공 여부, 오류 발생 여부를 나타냅니다. 종료 코드는 0~255 범위의 정수 값을 갖습니다. 특수 변수 '?' 사용하여 종료 코드를 확인할 수 있습니다. 0인 경우 정상 종료를 나타내고, 0이 아닌 경우 비정상적 종료를 나타냅니다. 

 

프로세스 상태를 확인하는 명령어는 'ps'로 process status의 약자입니다. '-f' 옵션으로 자세한 정보를 표시했습니다.

  • UID: 프로세스를 소유한 사용자의 사용자 ID입니다.
  • PID: 프로세스 ID, 각 프로세스의 고유 식별자입니다.
  • PPID: 상위 프로세스 ID, 이 프로세스를 생성한 상위 프로세스의 PID입니다.
  • C: 프로세서 사용률입니다.
  • STIME: 프로세스의 시작 시간입니다.
  • TTY: 프로세스와 관련된 제어 터미널입니다.
  • TIME: 프로세스에서 사용한 누적 CPU 시간입니다.
  • CMD: 프로세스와 관련된 명령 또는 실행 파일입니다.

ps vs ps -f

 

'Signal'은 운영 체제나 다른 프로세스가 프로세스에 전달하는 소프트웨어 인터럽트입니다. 신호는 오류, 사용자 작업 또는 다른 프로세스의 요청과 같은 이벤트나 조건에 대해 프로세스에 알리는 데 사용됩니다. "kill -l" 명령어를 통해 Signal의 종류를 확인할 수 있습니다. 프로세스를 중단하는데 사용하는 "Ctrl + c"는 2번 인터럽트를 의미하고, 9번 인터럽트는 각 프로세스에서 처리 불가능한 종료 시그널입니다. 

kill -l

시그널을 어떤 프로세스에 보내고 싶다면, "kill -시그널번호 PID"를 입력하면 됩니다. 편집기 프로세스를 백그라운드에서 실행하고, 시그널을 보내 종료시킨 예제입니다. 

kill -9

종료 코드를 확인하는 예제입니다. 프로세스를 Ctrl + C (2번 인터럽트)로 종료한 결과, (시그널 번호 + 128)로 시그널 번호를 확인할 수 있습니다. 

SIGINT

 

어떤 프로세스가 시그널을 받고 아무 동작을 하지 않는다면 해당 프로세스는 종료됩니다. 따라서, 시그널 처리 코드를 작성하지 않는다면 시그널을 받은 프로세스는 종료됩니다.

 

Bash Shell에서는 'trap' 명령어를 사용하여 시그널을 처리할 수 있고, C Shell에서는 시그널 처리 방법을 지원하지 않는 것으로 보입니다. ( * 아시는 분 있으시면 댓글 부탁드립니다.)

 

시스템 자원 사용량 확인

사용법: top ( Enter: 사용량 갱신 & q(quit): 프로그램 종료)

top

 

감사합니다. 

728x90
반응형

'Linux' 카테고리의 다른 글

[Linux] C Shell Script - 제어문(2)  (0) 2024.03.27
[Linux] 파일 검색  (1) 2024.03.26
[Linux] C Shell Script - 제어문(1)  (0) 2024.03.26
[Linux] C Shell Script - Operator  (0) 2024.03.26
[Linux] C Shell Script - 사용자 입력, 인자  (0) 2024.03.26

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });