์ค๋์... ์ด๋ฐ ๋ถ๋ค๊ป ๋์์ด ๋๋ฉด ์ข๊ฒ ๋ค
ํ๋ก๊ทธ๋จ์ ์คํ ์์ผฐ๋๋ฐ ์ด๊ฒ ์ง์ง ์คํ๋๊ฑด์ง ํ์ธํด๋ณด๊ณ ์ถ๋ค ๐
์์ ์ด ์คํ์ํจ ํ๋ก๊ทธ๋จ์ด ์์ฃฝ์ด๋ณธ ์ ์ด ์๋ค ๐
์ ์์ฃฝ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค ๐
์ข๋น ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๊ณ ๋นํฉํ์ ์๋ค ๐๐๐
๋ฐ๋ก ๋์ผ๋
๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ์ ์ง๋ดค๋คํ๋ฉด ํ๋ฒ์ฏค์ ๋ค์ด๋ดค์
process(ํ๋ก์ธ์ค)์ PID์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํ์ธํ ์ ์๋ ๋ช ๋ น์ด๋ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค
1. Process(ํ๋ก์ธ์ค)๋?
ํ๋ก์ธ์ค๋ ๋จ์ด๋ ๋ง์ด ์ต์ํ ํ ๋ฐ, ๋ฑ ๋ญ๋ผ๊ณ ์ ์ํ๊ธฐ๋ ์ด๋ ค์ด ๋จ์ด๋ค
๋ณดํต ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ด ๋น๊ต๊ฐ ๋๋ค
ํ๋ก๊ทธ๋จ์?
ํ๋ ๋์คํฌ์ ์ ์ฅ๋์ด ์๋ ์คํ์ฝ๋
ํ๋ก์ธ์ค๋?
ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ์ฌ ํ๋ก๊ทธ๋จ ์์ฒด์
ํ๋ก๊ทธ๋จ์ ์ํ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์คํ๋๋ ์์ ๋จ์
์ฆ, ์คํ์ํจ ํ๋ก๊ทธ๋จ์ ๋ปํ๋ค
(์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์ฌ์ฉํ๋ฉด ๋ฉํฐํ๋ก์ธ์ฑ -_-a)
(1) ํ๋ก์ธ์ค ์ํ
์ด์์ฒด์ ๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด ํญ์ ์ ํ๋ ํ๋ก์ธ์ค ์ํ
์ข ์ด๋ก ์ ์ธ ์๊ธฐ๋ฅผ ์ ๋ฆฌํด๋ณด์๋ฉด...
์์์ ์ค๋ช ํ๋ฏ์ด ํ๋ก๊ทธ๋จ์ ์คํํ๊ฒ ํ๋ก์ธ์ค์ธ๋ฐ,
์๊ฑธ ๊ด๋ฆฌํด์ฃผ๋ ์ด์์ฒด์ ์ผ๊ฑฐ๋ค
์ด์์ฒด์ ์์ ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ ์คํ์ํค๊ณ ์ธ์ ์คํ์ํค๊ณ ์ข ๋ฃํ๋์ง๊ฐ
ํ๋ก์ธ์ค ์ํ๋ผ๊ณ ํ๋ค
๊ทธ๋ฆผ์์ ๋์์๋ ๊ฒ ์ฒ๋ผ 5๊ฐ์ง์ ์ํ๊ฐ ์๋ค
์คํ(running) : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฐจ์งํ์ฌ ๋ช ๋ น์ด๋ค์ด ์คํ๋๋ ๋จ๊ณ
์์ฑ(create) : ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๋ ์ค
์ค๋น(ready) : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ ์์ง๋ง ์ธ์ ๋ ์ง ์ฌ์ฉํ ์ ์๋ ์ํ๋ก, CPU๊ฐ ํ ๋น๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ค๋น ์ํ์ ํ๋ก์ธ์ค ์ค ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ๋๋ค.
๋๊ธฐ(waiting) : ๋ณด๋ฅ(block)๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ ์๋ฃ, ์๊ทธ๋ ์์ ๋ฑ ์ด๋ค ์ฌ๊ฑด์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ๋ฅผ ๋งํ๋ค.
์ข ๋ฃ(terminated) : ํ๋ก์ธ์ค์ ์คํ์ด ์ข ๋ฃ๋ ๋จ๊ณ
(↑ ์ํค๋ฐฑ๊ณผ์์ ๊ฐ์ ธ์ด)
์ํผ ์ด๋ฐ ๋จ๊ณ๋ค์ด ์๋๋ฐ,
์ฐ๋ฆฌํํ ํ์ํ๊ฑฐ๋ ์คํ/์ข ๋ฃ ์ํ์ด๋ค
๊ทธ๋ฆฌ๊ณ ๋ฆฌ๋ ์ค์์๋ ์ด ํ๋ก์ธ์ค ์ํ๋ฅผ ์กฐํํ ์ ์๋
๋ช ๋ น์ด๋ฅผ ๊ฐ๊ณ ์๋ค → ps
์๊ฑด ์๋์์ ์ค๋ช ํ๊ฒ ๋ค
(2) PID (Process ID)
๋ง ๊ทธ๋๋ก ํ๋ก์ธ์ค ID์ด๋ค
์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ถ์ฌ๋์ ์๋ณ ๋ฒํธ์ด๋ค
๋ง์ ๊ฑฐ์ฐฝํ์ง๋ง ์ฌ๋ํํ ์ฃผ๋ฏผ๋ฒํธ ํ ๋นํ ๊ฒ ์ฒ๋ผ
ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ID์ด๋ค
2. PS (Process Status)
ํ๋ก์ธ์ค ์ํ๋ฅผ ์ ์ ์๋ ๋ช ๋ น์ด๋ ps๋ผ๋ ๊ฒ์ด ์๋ค
์ปค๋งจ๋๋ผ์ธ์ help๋ฅผ ํด๋ณด๋ฉด
CLI> ps --help
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
์ด๋ ๊ฒ ์ธ์ ๊ฐ๋จํ ์ค๋ช ์ด ์๋ค
์ ์ฒด ์ค๋ช ์ ๋ณด๊ณ ์ถ์ผ๋ฉด ์ต์ a๋ฅผ ์ถ๊ฐํด์ค๋ค
CLI> ps --help a
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
For more details see ps(1).
์ ๋ง ๋ง์ ์ต์ ์ด ์๊ตฐ!
์ด ์ค ๋ด๊ฐ ์์ฃผ ์ฐ๋ ์ต์ ์ ์๋์ ๊ฐ๋ค
์ฐธ๊ณ ) -๊ฐ ๋ถ์ ์ต์ ๊ณผ ์ ๋ถ์ ์ต์ ์ ๋ค๋ฅด๊ฒ ์ฐ์
์ต์ ๋ช | ์ค๋ช |
-e | all processes ํ์ฌ ์ปค๋์์ ์ฌ์ฉํ๋ ๋ชจ๋ ํ๋ก์ธ์ค๋ค ๋ณด๊ณ ์ถ์ ๋ |
-L | possibly with LWP and NLWP columns LWP๋ ๊ฒฝ๋ ํ๋ก์ธ์ค๋ฅผ ๋ปํจ ํ๋ก๊ทธ๋จ์์ ๋๊ณ ์๋ ์ค๋ ๋ ๋ค ๋ณด๊ณ ์ถ์ ๋ ์ |
-f | full-format, including command lines ์๊ฐ ์ ๋ณด ๊ฐ์๊ฑฐ๋ ๋ค ๋ณผ ์ ์์ |
CLI> ps -eLF | grep {Process ์ด๋ฆ}
์๋ ๊ฒ ๋ง์ด ์ด๋ค
์ต์ ์ด ๋ง์ผ๋๊น ํ์ํ๊ฑฐ ์ฐพ์์ ์ฐ๋ฉด ๋ ๋ฏ.
์ฐธ๊ณ ) grep ๋ช ๋ น์ ๋ง์ ์ ๋ณด์์ ํ์ํ๊ฑฐ๋ง ์ฐพ๊ณ ์ถ์ ๋ ์
๊ทธ๋ฌ๋ฉด ps ๋ช ๋ น์ด๋ก ๋ญ๋ฅผ ํ์ธํ ์ ์๋๋....๋ฅผ ๋ณด๊ธฐ์ํด
์๋์ ๊ฐ์ด ์ปค๋งจ๋๋ฅผ ์ ๋ ฅํด๋ณด์
CLI> ps -f
UID PID PPID C STIME TTY TIME CMD
{USER} 764 47766 0 18:02 pts/20 00:00:00 ps -f
{USER} 47766 47765 0 10:00 pts/20 00:00:00 -csh
UID..? PID๋ ๋ญ๋ฐ..?
๊ฐ ์ด์ด ๋ญ ๋ปํ๋์ง ๊ฐ๋จ์ค๋ช ํ์๋ฉด
๋จธ์ ์ด | ์ค๋ช |
USER | ํ๋ก์ธ์ค ์์ ์ ์ด๋ฆ (๊ณ์ ์ด๋ฆ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.) |
UID | USER ID ๋ง ๊ทธ๋๋ก ์์ ์ ID ๋์๊ฒ ๋ค |
PID | Process ID ์๊ฒ์ด ๋ฐ๋ก PID!! |
PPID | Parent Process ID ์๊ฒ์ด ๋ถ๋ชจ ํ๋ก์ธ์ค ID ใ ์ข๋น ํ๋ก์ธ์ค๊ฐ ์๊ฒผ์ ๋ ๋ถ๋ชจ ํ๋ก์ธ์ค ID๋ฅผ ์ฃฝ์ด๋ผ๋ ๋ง์ ๋ค์ด๋ดค์ ํ ๋ฐ ๊ทธ๋ PPID๋ฅผ ์กฐํํ๋ฉด ๋จ |
STIME | Start Time ํ๋ก์ธ์ค๊ฐ ์์๋ ์๊ฐ |
TTY | Tele Typewriter? Teletype? ํ๋ก์ธ์ค๊ฐ ์คํ๋ ํฐ๋ฏธ๋ "์ข ๋ฅ/๋ฒํธ" |
TIME | CPU๋ฅผ ์ฌ์ฉํ ์ด ์๊ฐ (ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ ์๋ 0์ด๋ผ๊ณ ํจ) |
CMD | ํ๋ก์ธ์ค ์ด๋ฆ ๋๋ ๋ช
๋ น์ด ์ฌ์ฉ ex) ./test ํ๋ฉด test๋ก ๋์ค๊ฒ ์ฃต? ์์ ์์ ์์ "ps -f" ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ CMD์ ํ์๋๊ฑฐ๋ ๋ณด์ |
LWP | Light weight process ์์์ ์ ๊น ์๊ธฐํ๋ ๊ฒฝ๋ ํ๋ก์ธ์ค์ธ๋ฐ, ์ง๊ธ ๋ ์๋ ์ค๋ ๋๋ฅผ ๋ปํ๋๊ฑฐ์ |
๊ทธ๋ผ ์ด์ฏค์์ ์์ํ๋๋ฅผ ์คํํด๋ณด๊ฒ ๋ค
์์ฃผ ๊ฐ๋จํ 10์ด๋ง๋ค ์๊ฐ์ฐ๋ ํ๋ก๊ทธ๋จ์ด๋ค
#include <ctime>
#include <csignal>
#include <thread>
#include <chrono>
using namespace std;
bool signal_flag = true;
string getNowTime()
{
time_t now = time(0);
return ctime(&now);
}
void signalHdlr(int signum)
{
cout << "\nSignal: " << signum << endl;
signal_flag = false;
}
int main ( )
{
signal(SIGINT, signalHdlr);
signal(SIGTERM, signalHdlr);
signal(SIGQUIT, signalHdlr);
signal(SIGKILL, signalHdlr);
int active_cnt = 0;
while( signal_flag )
{
if( active_cnt >= 10 )
{
cout << getNowTime() << endl;
active_cnt = 0;
}
std::this_thread::sleep_for(std::chrono::seconds(1));
active_cnt++;
}
return 0;
}
sinal ์ฒ๋ฆฌ๋ง ์ถ๊ฐํด์ค ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ด๋ค
์๊ฑธ makeํ๊ณ ์คํ์ํค๋ฉด
CLI> ./test_r
Tue Jun 8 11:11:20 2021
Tue Jun 8 11:11:30 2021
Tue Jun 8 11:11:40 2021
.....
์๋ ๊ฒ ์๊ฐ์ ์ฐ๋๋ฐ, ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์ํ์ธ์ง ๋ด๋ณด๊ณ ์ถ๋ค๋ฉด?
ps ๋ช ๋ น์ด๋ก ๋ณด๋ฉด ๋๋ค
CLI> ps -eLF | grep test_r
{UID} 11421 10718 11421 0 1 4186 988 22 11:22 pts/19 00:00:00 ./test_r
{UID} 11433 738 11433 0 1 29204 984 5 11:22 pts/9 00:00:00 grep -n --exclude=tags test_r
์ด๋ ๊ฒ ๋์จ๋ค.
์ปค๋งจ๋๋ก ์น๋๊น ์์ ํ๋๊ฐ ์๋์์ ใ ใ ์ ์๋์ค์ง...
UID | PID | PPID | LWP | STIME | TTY | TIME | CMD |
{USER ID} | 11421 | 10718 | 11421 | 11:22 | pts/19 | 00:00:00 | ./test_r |
๋งค์นญ์์ผ์ ์ค๋ช ํ๋ฉด ์๋ฌํ๋ค
๊ทผ๋ฐ ์ํ๋ฅผ ๋ณผ ์ ์๋๊ฑด ์๊ฒ ๋๋ฐ ์ค๋ ๋๋ณ๋ก ๋ณด๊ณ ์ถ์๋ฐ
๊ทธ๊ฑด ์ด๋ป๊ฒ ๋ณด์ง???? ํ ์ ์๋๋ฐ ๊ทธ๋ด ๋ ์ฐ๋ ๋ช ๋ น์ด๊ฐ ๋ ์๋ค
3. PSTACK(Process Stack)
๋ฐ๋ก๋ฐ๋ก pstack์ด๋ผ๋ ๋ช ๋ น์ด์ด๋ค
์ค๋ ๋๊ฐ ์ด๋์ ๋ธ๋ก๋์ด์๋์ง ๊ถ๊ธํ๊ฑฐ๋,
ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ช ํ ์ข ๋ฃ์์ผฐ๋๋ฐ, ๋จ์ ์ค๋ ๋๊ฐ ์๋ค๊ฑฐ๋!!
ํ๋ก์ธ์ค๊ฐ ์ง๊ธ ๋ฌด์จ ์ง์ ํ๊ณ ์๋์ง ๋ณผ ์ ์๋ค
์ฌ์ฉ๋ฐฉ๋ฒ์ ์์ฃผ ๊ฐ๋จํ๋ค
CLI> pstack {PID}
CLI> pstack {LWP}
ps ๋ช ๋ น์ด๋ก ํ์ธํ PID๋ฅผ ์ ๋ ฅ๋ง ํด์ฃผ๋ฉด ๋๋ค
CLI> pstack 12759
#0 0x00002b4bbee2abc0 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:81
#1 0x000000000040125c in std::this_thread::sleep_for<long, std::ratio<1l, 1l> > (__rtime=...) at /usr/local/gcc-4.9.4/include/c++/4.9.4/thread:281
#2 0x0000000000400f09 in main () at main.cpp:38
์ด๋ ๊ฒ ์ค๋ ๋์ ๋ํ ์ถ์ (?)ํ ๋ถ๋ถ์ ๋ณด์ฌ์ค๋ค
์ฐธ๊ณ ) ํ๋ก์ธ์ค ์์ ์๊ฑฐ๋ root ๊ณ์ ์์๋ง ์ํ ๊ฐ๋ฅ
#0์ ์ ์์์์ sleep ํจ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๊ณ
#1์ std::this_thread ์ฌ์ฉํ ๋ถ๋ถ์ด๋ค
#2๋ main ์ค๋ ๋๋ฅผ ๋ณด์ฌ์ค๋ค
๋ ๋ฒ์งธ ํ๋๋ ์ค๋ ๋ ID๋ฅผ ๋ปํ๋ค (TID)
์ด๊ฑด ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ด๋ผ 3๊ฐ์ ์คํ๋ง ๋ณด์ด๋๋ฐ,
ํฐ ํ๋ก๊ทธ๋จ์ ๋ค๋ฃจ๋ค๋ณด๋ฉด ์์ฒญ ๋ง์ ์ค๋ ๋๊ฐ ๋ฐํ ๋ฐ,
๊ทธ ๋ ps๋ pstack ๋ช ๋ น์ด ๋ฑ์ ์ด์ฉํด์ ์ถ์ ํด๋ณด์
4. KILL (์ฃฝ์ฌ)
์ค๋ ๋ง์ง๋ง์ผ๋ก ์ค๋ช ํ ๋ช ๋ น์ด๋ kill ์ด๋ค
๋ง๊ทธ๋๋ก ์ฃฝ์ด๋๊ฑฐ๋ค ใ ใทใท
ํ๋ก์ธ์ค์ ์๊ทธ๋ ์ฒ๋ฆฌ๋ฅผ ์ ๋๋ก ์ํ๊ฑฐ๋
์๋ชป๋ ์ฝ๋๋ฅผ ์ง ๊ฒฝ์ฐ์๋ ์ ๋๋ก ์ข ๋ฃ๊ฐ ์๋๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค
๊ทธ๋ฅ ๋ฌด์ํ๊ฒ ๋๋ฉด, CPU๊ฐ ๋ชป๋ฒํธ ์๋ ์์ผ๋๊น
์ ๋๋ก๋ ์ข ๋ฃ๋ฅผ ํด์ฃผ๋๊ฒ ์ข๋ค!
์ข๋น ํ๋ก์ธ์ค๋ ์ด๋ฐ ๊ฒฝ์ฐ์์ ์๊ธฐ๊ธฐ ๋ง๋ จ์ด๋ค
CLI> kill -{SIGNAL ๋ฒํธ} {PID}
์ฌ์ฉ๋ฐฉ๋ฒ์ ์๋ ๊ฒ PID๋ฅผ ์ฃฝ์ฌ์ค! ๋ก ์ฐ์ธ๋ค
SIGNAL ๋ฒํธ๋ ์๋ฅผ ์ด๋ป๊ฒ ์ฃฝ์ฌ์ค๊น?๋ผ๋ ๋ฒํธ์ด๊ณ ,
1๋ถํฐ ์์ํ๋ ๋ฆฌ์คํธ๋ก ์ด๋ฃจ์ด์ ธ์๋ค
kill ๋ช ๋ น์ด๋ก ์ ๋ฆฌ์คํธ๋ฅผ ๋ณผ ์ ์๋ค
CLI> kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT
STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS RTMIN RTMIN+1 RTMIN+2
RTMIN+3 RTMAX-3 RTMAX-2 RTMAX-1 RTMAX
์ด๋ ๊ฒ -l ์ต์ ์ ์ค์ ์ฌ์ฉํ ์ ์๋ signal ๋ชฉ๋ก์ ๋ณผ ์ ์๋๋ฐ,
๋ณดํต ํ๋ก๊ทธ๋จ์ ๋ง์ด ์ข ๋ฃํ ๋ ์ฌ์ฉํ๋๊ฑด KILL(9๋ฒ์งธ๊บผ)์ด๋ค
์ฐธ๊ณ ) 1๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๋ค
CLI> kill -9 11421
์ค์ ์ฌ์ฉํ๋ฉด ์๋ ๊ฒ๋๊น!?
์ด๋ฌ๋ฉด ๋๋ค.. ์ ์ข ๋ฃ๊ฐ ๋์๋์ง๋ ps ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธ ๊ฐ๋ฅํ๋ค
(1) SIGNAL
kill ๋ช ๋ น์ด๋ฅผ ๊ทธ๋๋ ํ๋ฒ์ฏค ์ด๋ค๋ฉด signal์ด ๋ญ๋ญ ์๋์ง๋ ๋ด์ผํ ๊ฒ ๊ฐ๋ค
ํ๋ฒ ์ฝ์ด๋ณด๋๊ฑฐ์ ์์๋ฅผ ๋๊ธฐ ์ํด, man ํ์ด์ง๋ง ์บก์ณํด์ ์ฒจ๋ถํ๊ฒ ๋ค
๊ท์ฐฎ์๊ฑฐ ์๋
CLI> man 7 signal
๊ทธ๋ผ ์ด๋ง
'๐ฅ๏ธ Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Notepad๋ก UTF-8 BOM ๋ฌธ์ ํด๊ฒฐํ๊ธฐ (1) | 2024.09.03 |
---|---|
OpenSSL docs ์ ๋ฆฌ (์ ๋ฐ์ดํธ ์์ ) (0) | 2021.06.25 |
ls ๋ช ๋ น์ด/ํ์ผ๋ชฉ๋ก/linux ls (0) | 2021.06.17 |
์ฌ๋ณผ๋ฆญ ๋งํฌ(Symbolic Link) (2) | 2020.12.17 |