3. Processes

´ÙÁßÀÛ¾÷À» À§ÇÑ ±âº»ÀûÀÎ ´ÜÀ§°¡ processÀÌ´Ù. ±× Process¿¡ ´ëÇÑ ³»¿ëÀ» ÀÌÇØÇÏ°í ´Ù·ç´Â °Íµµ °ü¸®ÀÚÀÇ ¸òÀÌ´Ù. ±×¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ÀÌÇظ¦ À§ÇÑ ³»¿ëÀ» ´Ù·ç°íÀÚ ÇÑ´Ù. ¶ÇÇÑ, À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ deamon¿¡ °ü°èµÈ ¹ø¹øÈ÷ ¼öÁ¤µÇ´Â ȯ°æ¼³Á¤¸¶´Ù PC¿ë ¿î¿µÃ¼Á¦Ã³·³ ÀçºÎÆà À̶ó´Â ¹ø°Å·Î¿î ÀýÂ÷¸¦ °ÅÃľßÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ÇØ´ç deamonÀÇ process¸¦ Á¦¾îÇϸ鼭 ÇØ´ç deamon¸¸À» Àç½ÃÀÛ ÇÒ ¼ö Àֱ⶧¹®ÀÌ´Ù.


3.1 Processes

Control ProcessÀÇ Á¦¾î¿¡´Â ProcessÀÇ »óŸ¦ ¾Ë°í ProcessÀÇ »óŸ¦ º¯°æÇϴ¹æ¹ý¿¡ °üÇÑ ³»¿ëÀÖ´Ù.

3.1.1 Components of a Process

process´Â ´Ù¾çÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖÁö¸¸ processÀÇ °ü¸®Àû Ãø¸é¿¡¼­´Â ¾Æ·¡ÀÇ °ªµéÀÌ ÁÖ¿äÇÏ°Ô ÀÌ¿ëµÈ´Ù.

PID : processÀÇ ½Äº°¹øÈ£, ÀÌ °ªÀ» ÀÌ¿ëÇØ Á¦¾îÇÒ ¼ö ÀÖ´Ù.
PPID : ÇØ´ç process°¡ »ý¼º½ÃŲ parentÀÇ PID°ª.
UID & EUID : process¸¦ »ý¼º½ÃŲ userÀÇ UID & EUID°ª. ÇØ´ç process°¡ Á¢±Ù ±ÇÇÑ¿¡ °üÇÑ °ªÀÌ´Ù.
GID & EGID : process¸¦ »ý¼º½ÃŲ userÀÇ GID & EGID°ª. ÇØ´ç process°¡ Á¢±Ù ±ÇÇÑ¿¡ °üÇÑ °ªÀÌ´Ù.

3.1.2 Process States

process´Â ¾Æ·¡¿Í °°Àº »óŵéÀ» °¡Áú ¼ö ÀÖ´Ù.

Runnable : ½ÇÇà°¡´ÉÇÑ »óÅÂ
Sleeping : ¿äûÇÑ ÀÚ¿øÀ» ±â´Ù¸®´Â ´ë±â »óÅÂ
Swapped : ÁÖ±â¾ïÀåÄ¡¿¡ ÀúÀåµÇ¾îÀÖÁö ¾ÊÀº »óÅÂ
Zombie : ½ÇÇà°¡´ÉÇÑ »óÅÂ
Stopped : Á¤ÁöµÇ¾îÀÖ´Â ´ë±â »óÅÂ(½ÇÇà°¡´ÉÇÏÁö ¾ÊÀ½)


3.1.3 kill: Send Signals
process¿¡ signalÀ» º¸³»±â À§ÇØ »ç¿ëµÇ¾îÁö´Â ¸í·É ¿©·¯°¡Áö signalµéÀÌ Á¸ÀçÇÏÁö¸¸, ÁÖ·Î »ç¿ëµÇ¾îÁö´Â signalÀº ºÒ°ú ¸î°³ µÇÁö¾Ê´Â´Ù. ¿©·¯ ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­ »ç¿ëµÇ´Â signalÀÇ ID´Â ´Ù¸£´Ù.

1 HUP : Hangup
2 INT : Interrupt
3 QUIT : Quit
9 KILL : Kill
15 TERM : Software Termination

kill [-signal] pid

ÀϹÝÀûÀ¸·Î´Â Á¢±ÙÀÌ ¾ÈµÇ´Â processÀ» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇϱâ À§ÇØ »ç¿ëµÇ¾îÁö±â ¶§¹®¿¡ 9¹øÀ» »ç¿ëÇÑ´Ù.

¿¹Á¦ : # kill -9 236


3.1.4 ps: Monitor Processes

ps´Â processÀÇ »óŸ¦ º¸¿©ÁØ´Ù. kill ¸í·É°ú °°ÀÌ ¾²ÀÌ´Â °æ¿ì°¡ ¸¹´Ù. optionÀº ´ÙÀ½°ú °°´Ù.

»ç¿ë¹ý: ps [ -aAdeflcj ] [ -o format ] [ -t termlist ] [ -u userlist ] [ -U userlist ] [ -G grouplist ] [ -p proclist ] [ -g pgrplist ] [ -s sidlist ]

user ruser group rgroup uid ruid gid rgid pid ppid pgid sid pri opri pcpu pmem vsz rss osz nice class time etime stime f s c tty addr wchan fname comm args

ÀÚ¼¼ÇÑ optionÀÇ ¼³¸íÀº man page¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. ÀϹÝÀûÀ¸·Î ¾²ÀÌ´Â optionÀº -efÀÌ´Ù. ÀÌÀ¯´Â ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÉ ¼ö ÀÖ´Â ³»¿ëÀ» È®ÀÎÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

¿¹Á¦ :

# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 10¿ù 01 ? 0:00 sched
root 1 0 0 10¿ù 01 ? 0:01 /etc/init -
root 2 0 0 10¿ù 01 ? 0:00 pageout
root 3 0 1 10¿ù 01 ? 6:15 fsflush
root 122 1 0 10¿ù 01 ? 0:02 /usr/sbin/inetd -s
root 262 1 0 10¿ù 01 ? 0:00 /usr/lib/saf/sac -t 300
root 105 1 0 10¿ù 01 ? 0:00 /usr/sbin/rpcbind
root 216 1 0 10¿ù 01 ? 0:01 /usr/sbin/vold
root 107 1 0 10¿ù 01 ? 0:00 /usr/sbin/keyserv
root 113 1 0 10¿ù 01 ? 0:00 /usr/sbin/kerbd
root 125 1 0 10¿ù 01 ? 0:00 /usr/lib/nfs/statd
root 127 1 0 10¿ù 01 ? 0:00 /usr/lib/nfs/lockd
root 146 1 0 10¿ù 01 ? 0:00 /usr/lib/autofs/automountd
root 166 1 0 10¿ù 01 ? 0:03 /usr/sbin/nscd
root 160 1 0 10¿ù 01 ? 0:00 /usr/sbin/cron
root 176 1 0 10¿ù 01 ? 0:00 /usr/lib/lpsched
root 182 176 0 10¿ù 01 ? 0:00 lpNet
root 192 1 0 10¿ù 01 ? 0:00 /usr/lib/sendmail -bd -q1h
root 207 1 0 10¿ù 01 ? 0:00 /opt/hpnp/bin/hpnpd
root 202 1 0 10¿ù 01 ? 0:00 /usr/lib/utmpd

3.1.5 nohup: Protect Background Processes

°íÀüÀûÀÎ shellÀÎ sh¿¡¼­ background 󸮸¦ º¸È£ÇÒ ¼ö ¾ø´Ù. ±× ÀÌÀ¯´Â ÀÚ½ÅÀÌ ½Ã½ºÅÛ¿¡¼­ Á¦°ÅµÉ ¶§ child process¿¡ hangup signalÀ» º¸³»±â ¶§¹®ÀÌ´Ù. ÇÑ°¡Áö ¹æ¹ýÀº nohupÀ» ½á¼­ hangup signalÀÎ SIGHUPÀ» ¹ÞÁö ¾Ê´Â°ÍÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ º¸È£µÇ¾î¾ßÇÒ background process¸¦ ¼öÇàÇÒ ¶§ ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î »ç¿ëÇÏ°Ô µÈ´Ù.

# nohup command &

ÇÏÁö¸¸ ¿äÁò »ç¿ëµÇ´Â Áøº¸µÈ shellµéÀº nohupÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù.


3.2 Periodic Processes

cron: Schedule Commands

cronÀ̶ó°í ºÒ¸®´Â ÁÖ±âÀû ½ÇÇàÀ» µµ¿ÍÁÖ´Â ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ÁÖ±âÀûÀ¸·Î ¾î¶² ÇÁ·Î±×·¥À» ¼öÇàÇϵµ·Ï Çϴµ¥ »ç¿ëµÇ´Â shellÀº shÀÌ´Ù. cronÀÇ ÁÖ±âÀû ½ÇÇàÀÇ Æ÷¸ËÀº ´ÙÀ½ Àý¿¡ ¼³¸íÇÑ´Ù. crontabÀ̶ó´Â ÆÄÀÏ¿¡ ½ÇÇàµÉ ÁÖ±â¿Í ¸í·ÉÀ» Á¤ÀÇÇÑ´Ù. ÆÄÀÏÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

minute hour day month weekday username command
minute : ºÐ´ÜÀ§ÀÇ °ª (0-59)
hour : ½Ã°£´ÜÀ§ÀÇ °ª (0-23)
day : ³¯Â¥ °ª (1-31)
month : ´Þ °ª (1-12)
weekday : ¿äÀÏ °ª (0-6)

0:Su,1:Monday,2:Tu,3:W,4:Th,5:F,6=Sa

Ç×»ó ÀÏÄ¡µÇ´Â °ªÀº '*'·Î Ç¥½ÃÇÑ´Ù.

ÀÏ¹Ý »ç¿ëÀÚ´Â crontabÀ̶ó´Â ¸í·ÉÀ¸·Î ÀÚ½ÅÀÇ ÁÖ±âÀû ½ÇÇàÀ» ÇÒ ¼ö ÀÖ°í ½ÇÇàµÇ°í ÀÖ´Â cronÀÇ ³»¿ëÀº 'crontab -l'À» ÀÌ¿ëÇØ È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç 'crontab -r'À» ÀÌ¿ëÇØ ¼öÇàÇÏ°í ÀÖ´ø ÁÖ±âÀû ½ÇÇàÀ» Á¦°ÅÇÒ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ÁÖ±âÀû ½ÇÇàÀ» ÇÏ°Ô µÇ´Â °æ¿ì´Â ³¯Â¥³ª ½Ã°£¿¡ ´ëÇÑ Á¤º¸¸¦ ÁÖ±âÀûÀ¸·Î ³ªÅ¸³»±â À§ÇØ »ç¿ëµÇ¾îÁö°í ¶Ç, ½Ã½ºÅÛÀÇ °ü¸®¸¦ À§Çؼ­ File systemÀ» ÁÖ±âÀûÀ¸·Î Á¡°ËÇÏ¿© ÇÊ¿ä¾ø´Â ¾²·¹±â ÆÄÀϵîÀ» Á¦°ÅÇÏ´Â ¸ñÀûÀ¸·Îµµ »ç¿ëµÈ´Ù. À§ÀÇ ¿¹¸¦ ½ÇÁ¦ crontabÀÇ ³»¿ëÀ¸·Î Ç¥ÇöÀ» Çغ¸ÀÚ¸é ´ÙÀ½°ú °°´Ù.

¿¹Á¦ :

10 1 * * * find / -xdev -name core -atime +7 -exec rm -f {} ';' // ¸ÅÀÏ 1½Ã 10ºÐÀÌ µÇ¸é coreÆÄÀÏÀ» ã¾Æ Áö¿ì´Â ¸í·ÉÀÌ´Ù.

Solaris´Â Crontab ÆÄÀÏÀÌ /var/spool/cron/crontabs¿¡ À§Ä¡ÇÏ°Ô µÇ°í cronÀÇ »ç¿ëÇã°¡±Ç¿¡ ´ëÇÑ cron.allow¿Í cron.deny¿¡ °üÇÑ °ÍÀº /etc/cron.d¿¡ À§Ä¡ÇØ ÀÖ´Ù. cronÀÇ log¸¦ ¸¸µé·Á¸é /etc/default/cron¿¡ ÀÖ´Â CRONLOG=YES;¶ó´Â Ç׸ñÀ» uncommentÇÏ¸é µÇ°í ÀÌ log´Â /var/cron/log¿¡ »ý±â°Ô µÈ´Ù.


Line
Copyleft (c) 2000, Kang Jul Ki. All rights werdde not reserved.
¢Æ ÀüºÏ´ëÇб³ ÀüÀÚ°øÇаú ´ëÇпø SW°øÇבּ¸½Ç