른록노트
[CentOS7] ps와 signal(설명), kill 명령어 본문
@ ps : 프로세스를 보는 명령어
ps --help all (아래에 첨부)
자주 사용하는 옵션
ps -ef | grep ???
컬럼 설명
UID : 프로세스의 소유자
PID : 프로세스 ID, 실행된 프로세스에 부여된 숫자
PPID : 프로세스를 생성한 부모 프로세서의 PID
C : 프로세스 스케줄링을 위한 CPU 사용량, 현재는 사용되지 않는 필드
STIME : 프로세스가 시작된 시간을 '월:일' 혹은 '시:분:초'로 나타냄
TTY : Teletype의 약자, 프로세스가 연결된 제어 터미널을 표시, '?'은 제어 터미널에 연결되어 있지 않음을 나타냄
TIME : 프로세스에 의해 사용된 CPU 사용 시간을 '시:분' 형태로 나타냄
CMD : 실행된 프로세스 명을 나타냄
@ Signal
Signal이란 : UNIX 시스템에서 지원하는 소프트웨어 인터럽트, 프로세스는 시그널을 이용하여 다른 프로세스에게 이벤트를 전달 할 수 있음, 전달된 이벤트를 프로세스 간 통신 수단으로 사용 가능
시그널이 발생하는 경우
- 외부에 의해서
- 에러에 의해서
- 이벤트에 의해서
- 인위적인 시그널 발생
@ kill : 프로세스에 시그널을 보내는 명령어
주요옵션
-l : 지원 가능한 시그널 목록을 출력
-1 (-SIGHUP) HANG UP, 터미널 연결이 끊어지는 경우에 프로세스에게 전달되는 시그널
-2 (-SIGINT) INTERRUPT, CTRL+C 조합키를 누르면 포그라운드 프로세스 그룹 내 모든 프로세스에게 전달되는 시그널, 이 시그널을 받은 프로세스는 디폴트로 종료됨
-3 (-SIGQUIT) CTRL+W 조합키를 누르면 전위 프로세스 그룹 내에 모든 프로세스에게 전달되는 시그널, 이 시그널을 받은 프로세스는 디폴트로 종료되며 CORE파일을 생성함
-8 (-SIGFPE) 커널에 의해 발생, 산술 연산 에러를 내는 프로세스에게 시그널이 전달
-9 (-SIGKILL,-KILL) 시그널 9(=kill)을 받은 프로세스는 중료됨 (강제종료)
-11 (-SIGSEGV) 커널에 의해 발생, 잘못된 메모리를 참조하는 프로세스에게 전달되는 시그널
-14 (-SIGALRM) ALARM() 함수가 설정된 타이머에 의해 발생됨
-15 (-SIGTERM) TERMINATE, KILL 명령어가 보내지는 기본 시그널, 이 시그널을 받은 프로세스는 디폴트로 종료됨
-17 (-SIGCHLD) 프로세스의 종료나 정지의 경우에 부모 프로세스에게 전달되는 시그널
-18 (-SIGCONT) CONTINUE, STOP 시그널로 정지된 프로세스를 복원함
-19 (-SIGSTOP) STOP, 프로세스를 정지시키는 프로세스 제어 시그널, 무시하거나 임의로 처리할 수 없음
9는 강제종료
15는 정상종료
참고사이트
ps --help all
Usage:
ps [options]
Basic options:
-A, -e all processes
-a all with tty, except session leaders
a all with tty, including other users
-d all except session leaders
-N, --deselect negate selection
r only running processes
T all processes on this terminal
x processes without controlling ttys
Selection by list:
-C <command> command name
-G, --Group <GID> real group id or name
-g, --group <group> session or effective group name
-p, p, --pid <PID> process id
--ppid <PID> parent process id
-q, q, --quick-pid <PID>
process id (quick mode)
-s, --sid <session> session id
-t, t, --tty <tty> terminal
-u, U, --user <UID> effective user id or name
-U, --User <UID> real user id or name
The selection options take as their argument either:
a comma-separated list e.g. '-u root,nobody' or
a blank-separated list e.g. '-p 123 4567'
Output formats:
-F extra full
-f full-format, including command lines
f, --forest ascii art process tree
-H show process hierarchy
-j jobs format
j BSD job control format
-l long format
l BSD long format
-M, Z add security data (for SELinux)
-O <format> preloaded with default columns
O <format> as -O, with BSD personality
-o, o, --format <format>
user-defined format
s signal format
u user-oriented format
v virtual memory format
X register format
-y do not show flags, show rss vs. addr (used with -l)
--context display security context (for SELinux)
--headers repeat header lines, one per page
--no-headers do not print header at all
--cols, --columns, --width <num>
set screen width
--rows, --lines <num>
set screen height
Show threads:
H as if they were processes
-L possibly with LWP and NLWP columns
-m, m after processes
-T possibly with SPID column
Miscellaneous options:
-c show scheduling class with -l option
c show true command name
e show the environment after command
k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]
L show format specifiers
n display numeric uid and wchan
S, --cumulative include some dead child process data
-y do not show flags, show rss (only with -l)
-V, V, --version display version information and exit
-w, w unlimited output width
--help <simple|list|output|threads|misc|all>
display help and exit