리눅스 명령어 2


ps [-flaAe] [-G gid_list] [-g egid_list] [-U uid_list] [-u euid_list] [-t terminal_list]

-f 이 옵션을 사용하면 프로세스 정보가 한 줄씩 다음 예처럼 출력된다.

UserName PID PPID C STIME TTY TIME CMD

-l 이 옵션은 -f 옵션보다 더 많은 정보를 출력하며 다음과 같은 형식을 따른다.

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

-a 최근에 많이 실행된 제어 터미널을 가진 프로세스의 정보를 출력한다.

-A, -e 현재 시스템에서 실행중인 모든 프로세스의 정보를 출력한다.

-G 이 옵션 뒤에 입력된 GID를 갖는 프로세스에 대한 정보를 출력한다.

-g 이 옵션 뒤에 입력된 EGID를 갖는 프로세스에 대한 정보를 출력한다.

-U 이 옵션 뒤에 입력된 UID를 갖는 프로세스에 대한 정보를 출력한다.

-u 이 옵션 뒤에 입력된 EUID를 갖는 프로세스에 대한 정보를 출력한다.

-t 이 옵션 뒤에 입력된 제어 터미널을 갖는 프로세스에 대한 정보를 출력한다.

-o user-defined format(user,ruser,group,rgroup,pid,ppid,args등을 사용하여 출력 형식을 조절한다.

프로세스 정보

UID 사용자 계정 또는 사용자 ID

PID 프로세스 식별자

PPID 부모 프로세스 식별자

C 사용하지 않음

STIME 프로세스가 실행된 시간

TTY 프로세스의 포준 입출력을 담당하는 제어 터미널

TIME 프로세스의 CPU 점유시간

CMD 프로세스 실행 명령어

F 프로세스의 플래그

S 프로세스의 현재 상태

  • O: 프로세스가 CPU를 점유하여 실행 중임(Occupying)
  • S: 프로세스가 외부의 요청을 기다리는 중임(Sleeping)
  • R: 프로세스가 CPU를 점유하기 위해 대기 중임(Runnable)
  • Z: 프로세스가 종료되었으나 부모 프로세스에게 정보를 전달하지 못한 상태임(Zombie)
  • T: 프로세스가 정지된 상태임(Stopped)

PRI 프로세스의 우선순위

NI 프로세스의 우선순위를 계산할때 사용하는 값

ADDR 프로세스의 메모리 주소

SZ 프로세스가 차지하는 메모리의 양

WCHAN sleeping 상태의 프로세스가 기다리는 외부 요청 메모리 주소

 

kill [-signal_number | -signal_name] PID

kill -l [signal]

-signal_number|-signal_name 시그널 번호 또는 시그널명이다.

-l 지원 가능한 시그널 목록을 출력한다.

프로세스 간 통신

 시그널명 번호 의미
 SIGINT  2  [Ctrl+c] 조합키를 누르면 포 그라운드 프로세스 그룹 내 보든 프로세스에게 이 시그널이 전달된다. 이 시그널을 받은 프로세스는 디폴트로 종료된다.
 SIGKILL  9 무시하거나 임의로 처리할 수 없는 시그널이다. 이 시그널을 받은 프로세스는 종료된다.
 SIGSTOP  23  프로세스를 정지시키는 프로세스 제어 시그널이며 무시하거나 임의로 처리할 수 없다.
 SIGTERM  15  프로세스를 종료하는 시그널이다. 이 시그널을 받은 프로세스는 디폴트로 종료된다.
 SIGFPE  8  커널에 의해 발생하며 산술 연산 에러(0으로 나눈 경우등)를 대는 프로세스에게 이 시그널이 전달된다.
 SIGCHLD  18  프로세스의 종료나 정지의 경우에 부모 프로세스에게 이 시그널이 전달된다.
 SIGALRM  14  alarm()함수가 설정된 타이머에 의해 발생한다.
 SIGQUIT  3  [Ctrl+\]조합키를 누르면 전위 프로세스 그룹 내 모든 프로세스에게 이 시그널이 전달된다. 이 시그널을 받은 프로세스는 디폴트로 종료되며 Core 파일을 생성한다.
 SIGSEGV  11  커널에 의해 발생하며 잘못된 메모리를 참조하는 프로세스에게 이 시그널이 전달된다.
 SIGHUP  1  터미널 연결이 끊어지는 경우에 프로세스에게 이 시그널이 전달된다. 최근 환경 설정 파일의 재설정에 사용된다.

일반적으로 프로세스 간의 시그널 통신은 다음과 같은 경우에 사용한다.

1. 데몬 프로세스의 정상적인 종료를 위해

- 메모리에 로딩된 데몬 프로세스를 정상적으로 종료하기 위해 프로세스 간에 약속된 시그널을 발생시킨다.

2. 데몬 프로세스의 환경설정파일을 수정하기 위해

- 프로세스가 참조하는 환경설정 파일이 수정된 경우에 해당 파일을 다시 읽어 드리도록 하기 위해 프로세스 간에 약속된 시그널을 발생시킨다. 이런 목적으로 보통 SIGHUP 시그널을 사용한다.

3. 프로그램을 디버깅하기 위해

- 프로그램 디버깅을 위해 프로세스를 실행하였으나 놀리적인 오류를 보이는 경우 강제적으로 종료하기 위해 시그널을 이용한다.

4. 프로세서 간의 동기화를 위해

- 이들 외에도 특정 시점이 되었을을 상대편 프로세스에게 알려주기 위한 수단으로 약속된 시그널을 발생시킨다.

jobs 백그라운드 프로세스 모니터링

fg %number 포그라운드 모드로 전환

bg 정지된 프로세스를 백그라운드 모드로 전환

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

java 입출력2