리눅스 명령어 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 정지된 프로세스를 백그라운드 모드로 전환
댓글
댓글 쓰기