ããã ããã <shi...@nintendo.co.jp> ããã
èšäº <9e39lu$3h3$1...@nsvn01.zaq.ne.jp> ã§ãã¯ã
> ããããŠããããããéèŠãªè©±ãªãã§ãããjob å¶åŸ¡ã«ã¯ç«¯æ«å¶åŸ¡
> ã®åé¡ãã€ããŸãšããŸããforeground job ãš background ãšã§ç«¯
> æ«å
¥åºåãåãåãèš³ã§ãã
> ãäŸãã° cat(1) ãåŒæ°ç¡ãã§å®è¡ãããšãstdin ãé£ã£ãŠ stdout
> ãåããšããç¹°è¿ããããŸãããããããcat &ããšã㊠background
> ã§å®è¡ããããš SIGTTIN ãåããŠåæ¢ããŸããã€ãŸã background
> process ã¯ç«¯æ«ãæããªãããšãå€ããŸãã
éããŸããæåŸã®æãçŽåã®æããã©ãããŠå°åºã§ããã®ãäžæã§ãã
background process(ä»¥äž bg proc.) ã ééããªãå¶åŸ¡ç«¯æ«ãæã£ãŠ
ããã§ããããäŸãã°ä»¥äžã®ãããªã銎æã¿ã®åŸŽåãæããŠãããŸãïŒ
1. ps(1) ã§ bg process ãèŠããšãTT(å¶åŸ¡ç«¯æ«)ãçµã³ã€ããŠããŸãã
2. ãŠãŒã¶ã(bg proc. ã®å¶åŸ¡)端æ«ãã logout ããæãªã©ã¯ã
bg proc.ãã« SIGHUP ãéãããŠããŸãã
3. bg proc. ããåºåã詊ã¿ãŠããé垞㯠SIGTTOU ã§åæ¢ããŸããã
(ãããããã®èª¬ææ³ãçä¿æ¡ä»¶ãªãæ£ããã®ãªãããã®ãŸãŸ 3.ã«
é©çšããŠã端æ«ãæã€ããšãå€ããŸããããå°åºå¯ãšãªããŸãã)
bg proc. ã端æ«ãã read(2) ã詊ã¿ããšãã« SIGTTIN ãåããã®ã¯ã
端æ«ãæããªãããã§ã¯ãªãã端æ«åŽãã process ã調ã¹ãŠã¿ããš
foreground process (group)ã«ãªã£ãŠããªãããã§ãããã
--
æž¡éå
å® <ka...@watanabe.name> http://katsu.watanabe.name
In article <uy9bbe...@katsu.watanabe.name>,
WATANABE Katsuhiro <ka...@watanabe.name> wrote:
>ããŸãã® follow-up ã®é
ããè°è«ã®åŠšãã«ãªã£ãŠãããããããªããã
ãé
ãã®ã¯æ§ããªãã®ã§ããããã®ããã«ããããã® news server
ã§ã¯è»äžŠ expire ãããŠããŠæèã远ããªãã®ã§ããã®èŸºãã®é
æ
®
ãããŠããããè¯ãã£ãããããªãããšæããŸãã
ãèªåã§æžããèšäºãšã¯èšããäœã«æãçµã£ãŠããŸã£ããå®å
šã«èš
æ¶ããæ¶ãå»ãããŠããŸããŸããã
>> ãäŸãã° cat(1) ãåŒæ°ç¡ãã§å®è¡ãããšãstdin ãé£ã£ãŠ stdout
>> ãåããšããç¹°è¿ããããŸãããããããcat &ããšã㊠background
>> ã§å®è¡ããããš SIGTTIN ãåããŠåæ¢ããŸããã€ãŸã background
>> process ã¯ç«¯æ«ãæããªãããšãå€ããŸãã
>
>éããŸããæåŸã®æãçŽåã®æããã©ãããŠå°åºã§ããã®ãäžæã§ãã
ãå€å TIOCSPGRP ã®è©±ãæžãããã£ãããããªãããšæããŸãã
ãã®æã®è©±ãæ£ç¢ºæ§ãæ¬ ããã«è¡šçŸããããšãããšéåžžã«è€éãªè©±
ã«ãªãã®ã§ããã®èŸºãã®è©³çްããŒãããŠå€ãæã衚çŸã§èª¬æããçµ
æãå³å¯ã«ã¯äºå®ãšç°ãªã衚çŸã«ãªã£ãŠããŸã£ãã ããªããããªã
ã§ããããã
ãã©ãããæèã§åºãŠæ¥ã話ãªã®ãå
šãæãåºããªãã®ã§ããã以
äžã¯äœãšã倿ãå
ŒããŸããã
>background process(ä»¥äž bg proc.) ã ééããªãå¶åŸ¡ç«¯æ«ãæã£ãŠ
>ããã§ããããäŸãã°ä»¥äžã®ãããªã銎æã¿ã®åŸŽåãæããŠãããŸãïŒ
>1. ps(1) ã§ bg process ãèŠããšãTT(å¶åŸ¡ç«¯æ«)ãçµã³ã€ããŠããŸãã
ãããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒã¶ãã§ããããps(1) ã® TT ã®
å€ã¯ kernel ã® process ç®¡çæ§é äœã®äžããããã® process ãšçµ
ã³ã€ãããã端æ«ã®ååãåŒçšããŠããã ãã§ããã® process ãš
端æ«ã®é¢ä¿ãŸã§ã¯é¢ç¥ããŸããã
ãäžæ¹ãTIOCGPGRP ã«ããååŸåºæ¥ã process ã¯äžç«¯æ«ã«ã€ãæ
倧äžåã§ããããã以å€ã® process ã¯ç«¯æ«ã®å
¥åºåã䜿ãããšã¯
åºæ¥ãŸããã
ãå
èšäºã®æèã§ã¯ãããããå¶åŸ¡å¯èœãªç«¯æ«ãæã£ãŠãããåŠã
ãèšã£ãŠãããã ãšæããŸãã
ïŒããã®èŸºããPOSIX 以åãšä»¥åŸãšã§åŸ®åŠã«è¡šçŸãç°ãªãããç¥ã
ïŒãŸãããå ã¿ã«ãprocessããæ£ç¢ºã«ã¯ãprocess groupãã§ãã
>2. ãŠãŒã¶ã(bg proc. ã®å¶åŸ¡)端æ«ãã logout ããæãªã©ã¯ã
> bg proc.ãã« SIGHUP ãéãããŠããŸãã
ãããã¯å®å
šã« shell ã®ãä»äºã§ããkernel ã®ä»äºã§ã¯ãããŸã
ããbackground process ã« SIGHUP ãéããããã©ãã㯠shell
ã®å®è£
ã«äŸåããŸãã
ãå ã¿ã« Bourne shell ã®å®è£
ã§ã¯ãshell ã process å¶åŸ¡ãè¡
ãªããªã (fg ã bg ãéå®è£
) ã®ã§ãã&ãã§èµ·åããã process
㯠logout åŸãçãç¶ããŸãã
>3. bg proc. ããåºåã詊ã¿ãŠããé垞㯠SIGTTOU ã§åæ¢ããŸããã
ãããã shell ã®å®è£
äŸåã®çã§ããåçŽã« fork(2) ãš exec(2)
ã§ shell ãå®è£
ããŠãsetpgrp(2) ããŠèŠªã« TIOCSPGRP ãããšã
å㯠SIGTTOU ã§åæ¢ããŸããã
if (!(pid = fork())) {
setpgid(0, getpid());
execl("/bin/echo", "echo", "foo", NULL);
}
else if (pid > 0) {
tcsetpgrp(0, getpid());
waitpid(pid, &i, WUNTRACED);
if (WIFSTOPPED(i)) printf("%d\n", WSTOPSIG(i));
}
ïŒãäœããtty driver ã®å®è£
ã«ãã£ãŠã¯ local mode LTOSTOP ã®
ïŒç¶æ
ã«äŸåããŸãã
>bg proc. ã端æ«ãã read(2) ã詊ã¿ããšãã« SIGTTIN ãåããã®ã¯ã
>端æ«ãæããªãããã§ã¯ãªãã端æ«åŽãã process ã調ã¹ãŠã¿ããš
>foreground process (group)ã«ãªã£ãŠããªãããã§ãããã
ããã®ã端æ«ã«å¯Ÿãã foreground processããšããçšæ³ã¯ POSIX
ã§åºãŠæ¥ã termios çšèªã ãšæããŸããã
--
ããã ããã
èšäº <ajimpj$mbo$1...@nsvn01.zaq.ne.jp> ã§
ããã ããã <shi...@nintendo.co.jp> ãããã¯ã
> >ããŸãã® follow-up ã®é
ããè°è«ã®åŠšãã«ãªã£ãŠãããããããªããã
>
> ãé
ãã®ã¯æ§ããªãã®ã§ããããã®ããã«ããããã® news server
> ã§ã¯è»äžŠ expire ãããŠããŠæèã远ããªãã®ã§ããã®èŸºãã®é
æ
®
> ãããŠããããè¯ãã£ãããããªãããšæããŸãã
> ãèªåã§æžããèšäºãšã¯èšããäœã«æãçµã£ãŠããŸã£ããå®å
šã«èš
> æ¶ããæ¶ãå»ãããŠããŸããŸããã
ããã£ãšãã§ãã
è°è«ã®æ¬é¡ã¯ãwait ã絡ãã ãšãã® trap ã®æ¯èããã·ã§ã«ã«ãã£ãŠ
ç°ãªãçç±ãæ¢ãããšããç¹ã§ããããã®ç¹ã«ã€ããŠã¯é 調ã«è©±ã
é²ãã§çµè«ãåŸãããããã§ããç§ã¯ãbackground process ã
å¶åŸ¡ç«¯æ«ãæã€ãã©ãããšããç¹ã ãã«èšåãããããã㯠UNIX
äžè¬ã®è©±ã§å
ã®æèãšã¯ç¬ç«ãšæããé©åœãªéšåã®åŒçšã«çããŸããã
ã¹ã¬ãããæ§æããäžé£ã®èšäºã¯ãçŸåšã¯ãŸã 以äžã®å Žæã§åç
§
ã§ããããšæããŸãïŒ
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9e2890%242cm%241%40sc6%2Eosa%2Esharp%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9e39lu%243h3%241%40nsvn01%2Ezaq%2Ene%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9e9ti9%24323%241%40poinsettia%2Etrust%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9ehrgf%245it%241%40sc6%2Eosa%2Esharp%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3Csnm1ypfz5md%2Efsf%40indra%2Espp%2Ehpc%2Efujitsu%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3Csnmzoc3xpw6%2Efsf%40indra%2Espp%2Ehpc%2Efujitsu%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9f2ln7%24edd%241%40sc6%2Eosa%2Esharp%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3Csnmvgmiosin%2Efsf_%2D_%40indra%2Espp%2Ehpc%2Efujitsu%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3Csnmu222ornz%2Efsf%40indra%2Espp%2Ehpc%2Efujitsu%2Eco%2Ejp%3E
http://queen.heart.ne.jp/cgi-bin/browse?msgid=%3C9f8f8r%24bnh%241%40pin3%2Etky%2Eplala%2Eor%2Ejp%3E
ãããªããªããããªã®ã§ããæ©ãã«ã©ããã
--
æž¡éå
å® http://katsu.watanabe.name
èšäº <ajimpj$mbo$1...@nsvn01.zaq.ne.jp> ã§
ããã ããã <shi...@nintendo.co.jp> ãããã¯ã
> >background process(ä»¥äž bg proc.) ã ééããªãå¶åŸ¡ç«¯æ«ãæã£ãŠ
> >ããã§ããããäŸãã°ä»¥äžã®ãããªã銎æã¿ã®åŸŽåãæããŠãããŸãïŒ
> >1. ps(1) ã§ bg process ãèŠããšãTT(å¶åŸ¡ç«¯æ«)ãçµã³ã€ããŠããŸãã
>
> ãããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒã¶ãã§ãããã
å¿
ã /dev/tty ãå¶åŸ¡ç«¯æ«ãžã®éãéãšãªã£ãŠããŸãããã㯠UNIX ã«
åé¡ããã OS ãã¹ãŠã§å
±éã§ãã(see [Linux][BSD][Solaris])
ãã㊠background process ã /dev/tty ã«ã¢ã¯ã»ã¹ã§ããŸãã
> ps(1) ã® TT ã®
> å€ã¯ kernel ã® process ç®¡çæ§é äœã®äžããããã® process ãšçµ
> ã³ã€ãããã端æ«ã®ååãåŒçšããŠããã ãã§ããã® process ãš
> 端æ«ã®é¢ä¿ãŸã§ã¯é¢ç¥ããŸããã
> ãäžæ¹ãTIOCGPGRP ã«ããååŸåºæ¥ã process ã¯äžç«¯æ«ã«ã€ãæ
> 倧äžåã§ããããã以å€ã® process ã¯ç«¯æ«ã®å
¥åºåã䜿ãããšã¯
> åºæ¥ãŸããã
ãæå€§äžåããåºãŠãããããã«ããããããã®æ··ä¹±ãæããŸãã
ããã® proces ãšçµã³ã€ãããã端æ«ãããéäŸ control terminal,
controlling terminalãå¶åŸ¡ç«¯æ«ãšåŒã°ããŠãããã®ã§ãããããŠã
端æ«ããã¿ããTIOCGPGRP ã«ããååŸã§ãã process(group)ãã
èšãæã㊠controlling group ã«å±ããŠã process ã ãã
å¶åŸ¡ç«¯æ«ãæã€ãšèããŠããã®ãªããããã¯èª€ãã§ãã
process ããèŠãŠå¶åŸ¡ç«¯æ«ã¯(ååšããã°)äžæã«æ±ºãŸã /dev/tty
ãšããŠæäŸãããŸããããšãããéã«ãããç«¯æ« t ããã¿ãã°ãt ã
å¶åŸ¡ç«¯æ«ã«ããŠãã process (group) ã¯è€æ°ããããŸã(å
šããªã
ããšããã)ããããããã®èšããæå€§äžåãã®ããããããŸããã
1察å€ã®é¢ä¿ãäœãã®åéãã§1察1ã«æŒã蟌ããŠããŸã£ãŠããã®ã§ã¯ã
ç§ã®äž»åŒµãå¥ãªé¢ããåã³ãŸãšããŸãïŒ
process ã«å¶åŸ¡ç«¯æ«ãããã°ãããã¯ã/dev/tty ãéããŠåç
§ã§ããã
ãã®é¢ä¿ã¯ããã® process ã(ã·ã§ã«ã«ãã)background ã«
ãŸãããããããšãã£ãŠå€åãããã®ã§ã¯ãªããbackgroundãã®
process ã§ãå¶åŸ¡ç«¯æ«(ããªãã¡æå¹ãª /dev/tty)ãæã€ãã®ã¯ããã
controlling group ã«å±ãã process ã ããå
¥åºåã§ãããšããã®ã
äºå®ãšç°ãªããŸããå
¥åã«ã€ããŠã¯ 4BSD ãš SVR4 以éã«ãªã£ãŠç¢ºãã«
å¶éãããããã«ãªããŸãããããã以å€ã® process ã端æ«ã«åºåã
ããããšã¯æ®éã«ãããŸãã(see [Job])
> ãã以å€ã® process ã¯ç«¯æ«ã®å
¥åºåã䜿ãããšã¯
> åºæ¥ãŸããã
> ãå
èšäºã®æèã§ã¯ãããããå¶åŸ¡å¯èœãªç«¯æ«ãæã£ãŠãããåŠã
> ãèšã£ãŠãããã ãšæããŸãã
念ã®ãã確èªããŠãããšãå¶åŸ¡ç«¯æ«(control terminal)ãšããèšèã¯ã
ããã»ã¹ããèŠãŠãå¶åŸ¡å¯èœããªç«¯æ«(å¶åŸ¡ã®å®¢äœ)ã®ããšããã£ãŠ
ããã®ã§ã¯ãªããããã»ã¹çŸ€ãå¶åŸ¡ããäž»äœãæããŠãã£ãŠããŸãã
åèæç®
[Job] Job Control on BSDi and SunOS systems;
http://www-acs.ucsd.edu/instructional/unix/jobctrlbsd.html;
"Both foreground and background jobs can write to the
controlling terminal."
[Linux] /dev/tty ã®ãããªç«¯æ«ã¹ãã·ã£ã«ãã¡ã€ã«;
http://www.linux.or.jp/JF/JFdocs/Text-Terminal-HOWTO-6.html;
[BSD] mount_fdesc(8) on NetBSD;
http://www.tac.eu.org/cgi-bin/man-cgi?mount_fdesc+8+NetBSD-current ãªã©;
[Solaris] tty(7D) on Solaris;
http://docs.sun.com/?p=/doc/816-0222/6m6nmlt3g&a=view
[TermiosGen] Job Control ã The Controlling Terminal ã®èª¬æã®ç¯;
åçš® OS ã® termios(4);
http://www.freebsd.org/cgi/man.cgi?query=termios&apropos=0&sektion=4&manpath=FreeBSD+4.6-RELEASE&format=html ãªã©;
[TermiosSol] Solaris ã®Session Management ã®èª¬æã®ç¯;
http://docs.sun.com/?q=termios&p=/doc/816-0222/6m6nmlt36&a=view;
"Background process groups in the controlling process's
session are subject to a job control line discipline when
they attempt to access their controlling terminal."
[PS] ps(1) man page;
--
æž¡éå
å® http://katsu.watanabe.name
In article <u4rdqy...@katsu.watanabe.name>,
WATANABE Katsuhiro <ka...@watanabe.name> wrote:
>> ãããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒã¶ãã§ãããã
>
>å¿
ã /dev/tty ãå¶åŸ¡ç«¯æ«ãžã®éãéãšãªã£ãŠããŸãããã㯠UNIX ã«
>åé¡ããã OS ãã¹ãŠã§å
±éã§ãã(see [Linux][BSD][Solaris])
>ãã㊠background process ã /dev/tty ã«ã¢ã¯ã»ã¹ã§ããŸãã
ãäœã ã話ãåã¿åã£ãŠãŸããããæž¡éããã®æç« ãç§ã®æç« ãã
ãå¶åŸ¡ç«¯æ«ãã®å®çŸ©ã«ãã£ãŠçã«ããªããåœã«ããªããšãã代ç©ãª
ã®ã§ãæç« ãã®ãã®ã®çåœã§ã¯ãªããŠãŸãã¯ãå¶åŸ¡ç«¯æ«ãã®å®çŸ©ã
å
ã«æç¢ºã«ãã¹ãã ãšèšã£ãŠãããã§ãã
ãè²ã
ãªæç®ãåœãã£ãŠã¿ããšããcontrol terminalããcontrolled
terminalããcontrolling terminalããšæ§ã
ãªåèªããå¶åŸ¡ç«¯æ«ã
ãšããåãèš³ã§è¡šããŠããå Žé¢ãèŠã€ãããŸãã
ããcontrolãã¯ãšããããcontrollingããšãcontrolledããšã§ã¯
æå³ãå
šç¶éããŸãããã
ãã§ããã®äžã§ãç§ã®åæã®æããå¶åŸ¡ç«¯æ«ã㯠TIOCSPGRP ã®ã
ãšãèšã£ãŠããã ãããšãéå»ãæãåºãã€ã€æ¶æž¬ããèš³ã§ããäž
幎以äžãåã®è©±ã§ããã®æäœãã©ãèããŠããããŸã§ã¯ãã¡ãã¡æ¶
ããŠããããŸããããæ¶æž¬ã®åãåºãŸããã
>> ãäžæ¹ãTIOCGPGRP ã«ããååŸåºæ¥ã process ã¯äžç«¯æ«ã«ã€ãæ
>> 倧äžåã§ããããã以å€ã® process ã¯ç«¯æ«ã®å
¥åºåã䜿ãããšã¯
>> åºæ¥ãŸããã
>
>ãæå€§äžåããåºãŠãããããã«ããããããã®æ··ä¹±ãæããŸãã
>ããã® proces ãšçµã³ã€ãããã端æ«ãããéäŸ control terminal,
>controlling terminalãå¶åŸ¡ç«¯æ«ãšåŒã°ããŠãããã®ã§ãããããŠã
>端æ«ããã¿ããTIOCGPGRP ã«ããååŸã§ãã process(group)ãã
>èšãæã㊠controlling group ã«å±ããŠã process ã ãã
>å¶åŸ¡ç«¯æ«ãæã€ãšèããŠããã®ãªããããã¯èª€ãã§ãã
ãåé¡ããå¶åŸ¡ç«¯æ«ãã®å®çŸ©ã«ãããšæã£ãã®ã§ãããã§ã¯æ¢ããŠ
ãå¶åŸ¡ç«¯æ«ããšããèšèãé¿ããŠèšè¿°ããŠããŸããããããããã
èªã¿æ¿ããŠè©±ãåŒã£ããåããªãã§äžããã
ããå¶åŸ¡ããã端æ«ããå²ãšäžè¬çãªåèªã§ãUNIX kernel ã® tty
ãæã以å€ã«ããFA çšã®ã³ã³ãœãŒã«ã ãšããªã¢ãŒãã³ã³ãããŒã©
ã ãšãããå¶åŸ¡ {ãã|çšã®} 端æ«ããšããäžè¬çãªæŠå¿µãæã£ãŠ
ããŸãã
ãã§ããããããã§ã¯ãããããcontrolling terminalããšããŠã®
æå³ä»¥å€ã«ãå¶åŸ¡ç«¯æ«ããšããåŒç§°ãçšããŠããŸã£ãããšã®ã¿ã«çŠ
ç¹ãããŠãŠãåé¡ç¹ãæŽçããããšããèš³ã§ãã
ãããã§ã¯æž¡éããã¯äœããããã®ã§ããããïŒè©±ãæ··ãã£è¿ãã
ãã ãïŒçžæãèšãè² ããããã ãïŒ
ïŒããããã <uy9bbe...@katsu.watanabe.name> ã§äœãèšã
ïŒããã®ãç§ã«ã¯èŠããŸããã§ããã
ïŒããäžè¬ã«å¶åŸ¡ç«¯æ«ãšã¯ controlling terminal ã®ããšãæãã
ïŒsetsid(2) çã§æç€ºçã«åãé¢ããªãéãã¯å
šãŠã® process ã¯
ïŒãã®å¶åŸ¡ç«¯æ«ã倱ããªãããšããææã§ããã°ã衚çŸãäžæ£ç¢ºã§
ïŒããããæžãã ã§ããããããããªããéããŸãããšæ¥ãŠãã®ç
ïŒç±ãšããŠæããããŠãããã®ãæå³äžæã ã£ããã®ã§ã
ïŒããã®èŸºãã®äºæ
ã¯å®è£
äŸåã ã POSIX ååŸã§ç°ãªããã衚çŸ
ïŒã«ææ§ããæ®ãã®ã¯åŠããªããšæããŸããããããã話ã§ã¯ãªã
ïŒãŠãbackground process ã controlling terminal ãæã€å蚌ã
ïŒãšããŠçéããªæ ¹æ ãæã¡åºãããã®ã§ã¯è©±ãèŠããŸããã
>process ããèŠãŠå¶åŸ¡ç«¯æ«ã¯(ååšããã°)äžæã«æ±ºãŸã /dev/tty
>ãšããŠæäŸãããŸããããšãããéã«ãããç«¯æ« t ããã¿ãã°ãt ã
>å¶åŸ¡ç«¯æ«ã«ããŠãã process (group) ã¯è€æ°ããããŸã(å
šããªã
>ããšããã)ããããããã®èšããæå€§äžåãã®ããããããŸããã
>1察å€ã®é¢ä¿ãäœãã®åéãã§1察1ã«æŒã蟌ããŠããŸã£ãŠããã®ã§ã¯ã
ã誰ããå¶åŸ¡ç«¯æ«ã¯æå€§äžåããªããŠèšã£ãŠãŸãããã人ã®è©±ãã
ãæ²ããŠèªåã«æå©ãªããã«è©±ãé²ããããšããŠããŸãããïŒç§ã
æ¢ããŠãå¶åŸ¡ç«¯æ«ããšããåŒç§°ãé¿ããèŠåŽãæ°Žã®æ³¡ã§ãã
ããTIOCGPGRP ã«ããååŸåºæ¥ã processãã¯ãæå€§äžåãã§åã£
ãŠãŸããããç§ã®è¡šçŸã¯ãå
èšäºã®ãå¶åŸ¡ç«¯æ«ãã¯ãã®ããšãèšã
ããã£ãã®ã ãããšèšã£ãŠããã«éããªããŠããå¶åŸ¡ç«¯æ«ããäœãª
ã®ããè°è«ããŠããèš³ã§ã¯ãããŸããã
>process ã«å¶åŸ¡ç«¯æ«ãããã°ãããã¯ã/dev/tty ãéããŠåç
§ã§ããã
>ãã®é¢ä¿ã¯ããã® process ã(ã·ã§ã«ã«ãã)background ã«
>ãŸãããããããšãã£ãŠå€åãããã®ã§ã¯ãªããbackgroundãã®
>process ã§ãå¶åŸ¡ç«¯æ«(ããªãã¡æå¹ãª /dev/tty)ãæã€ãã®ã¯ããã
ãã§ãããã¯å
ã®è°è«ã«ã©ãçµã³ä»ããã§ããããïŒãã®äžç¯ã¯å
ã«ãcontrolling terminal ã«é¢ããäžè¬è«ããè¿°ã¹ãã ãã®è©±ã§ã
trap & wait ã®æåãšã¯é¢ä¿ãªãã§ãããã
ãã€ãŸããæç« ãšããŠã¯åã£ãŠããããã©ãæèãšããŠã¯åã£ãŠã
ãªãäžç¯ã§ãããæ¬é¡ããèŠããã©ãã§ããã話ã«éããŸããã
ãå
èšäºã®è¡šçŸã¯ãå¶åŸ¡ç«¯æ«ãã®æã瀺ããã®ãäœã§ããããšãã
ç¹ã«çåãæ®ããšããã ãã§ãæèçã«ã¯æ¬é¡ã«æ²¿ã£ã話ãå±éã
ãŠããŸãããã
ãã ããåé¡ãªã®ã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒã¶ãããã®äžç¹ã®ã¿
ãªããããããŸãããããšããã®ãç§ã®åãããã ã£ãèš³ã§ããå
é¡ã®æ¬è³ªãèŠå€±ã£ãŠäžããªãæãè¶³åãã«çµå§ãããªãã§äžããã
ïŒããšã¯èšãããã®æèã§ãããªã TIOCSPGRP ã®è©±ãæã¡åºãã®
ïŒãåçªéããããç¥ããªããäœãå°ããããŠãããªè©±ã«ãããã
ïŒããïŒäœãäžå¹Žä»¥äžãåã®ããšãªã®ã§çç®èŠåœãã€ããïŒïŒïŒã
ïŒãDate: èŠããšéææ·±å€ãªã®ã§ãé
ãã£ããã£ãŠããæ°åã«ãªã£
ïŒãŠãã ãã ã£ããã㊠:-)
--
ããã ããã
èšäº <ajtgig$6i7$1...@nsvn01.zaq.ne.jp> ã§
ããã ããã <shi...@nintendo.co.jp> ãããã¯ã
> ãããã§ã¯æž¡éããã¯äœããããã®ã§ããããïŒè©±ãæ··ãã£è¿ãã
> ãã ãïŒçžæãèšãè² ããããã ãïŒ
æ¬é¡ã® trap & wait ã®è©±ããæŽŸçç¬ç«ãããŠã
ãbackground process ãå¶åŸ¡ç«¯æ«ãæã€ããšãããã
ãšãã䞻匵ãå±éãããã£ãã®ã§ããããã«ããã«çãããåæããŠ
ããããã°å¬ãããšæããŸãããmohta ããã¯ã(è°è«ã¯)åã¡è² ãã§ããã
ãšèšã£ãŠããŸãããç§ã¯éããŸããå€ã話ãçºæããŠèžãçŽãã®ã倧奜ã
ãªã®ã¯èªããŸãããæ··ãã£è¿ãæå³ã¯ãããŸããã
> ç§ã®è¡šçŸã¯ãå
èšäºã®ãå¶åŸ¡ç«¯æ«ãã¯ãã®ããšãèšã
> ããã£ãã®ã ãããšèšã£ãŠããã«éããªããŠããå¶åŸ¡ç«¯æ«ããäœãª
> ã®ããè°è«ããŠããèš³ã§ã¯ãããŸããã
ããããããšã¯éã«ãç§ã®æå³ã¯ãå°ããå¶åŸ¡ç«¯æ«ããäœãªã®ããš
ãã®ç¹è³ªã ããè«ããããšã§ããã
> >process ã§ãå¶åŸ¡ç«¯æ«(ããªãã¡æå¹ãª /dev/tty)ãæã€ãã®ã¯ããã
> ãã®äžç¯ã¯å
> ã«ãcontrolling terminal ã«é¢ããäžè¬è«ããè¿°ã¹ãã ãã®è©±ã§ã
> trap & wait ã®æåãšã¯é¢ä¿ãªãã§ãããã
ãŸãã«ç§ã®æçš¿äŒå³ã©ããã§ããtrap & wait ãšå
šãç¡é¢ä¿ã«ã
controllingãterminal ã«é¢ããäžè¬è«ã«çŠç¹ãåœãŠãããšããã®ã
ç§ã®æçš¿ã§ãã
> ãã€ãŸããæç« ãšããŠã¯åã£ãŠããããã©ãæèãšããŠã¯åã£ãŠã
> ãªãäžç¯ã§ãããæ¬é¡ããèŠããã©ãã§ããã話ã«éããŸããã
ç§ã¯ãã®ãæ¬é¡ã§ãªãã»æ¬æ¥ã®æèã§ã¯ãªãéšåããããçãããš
è°è«ãããã£ãã®ã§ãã
åçããã«ãããéãã®åå ã®ã²ãšã€ã¯ã
æž¡éã®èšäº <u4rdq6...@katsu.watanabe.name> ã®
> è°è«ã®æ¬é¡ã¯ãwait ã絡ãã ãšãã® trap ã®æ¯èããã·ã§ã«ã«ãã£ãŠ
> ç°ãªãçç±ãæ¢ãããšããç¹ã§ããããã®ç¹ã«ã€ããŠã¯é 調ã«è©±ã
> é²ãã§çµè«ãåŸãããããã§ããç§ã¯ãbackground process ã
> å¶åŸ¡ç«¯æ«ãæã€ãã©ãããšããç¹ã ãã«èšåãããã
ãšããç§ã®ãæããäºåŸã«ãªã£ãŠããŸã£ãç¹ã§ã¯ãªãã§ããããã
ããã³ããŸãã誀解ãçãŸãªããã Subject: ã倿Žãã¹ãã§ããã
--
æž¡éå
å® http://katsu.watanabe.name
> ãbackground process ãå¶åŸ¡ç«¯æ«ãæã€ããšãããã
åžžã«æã€æ°ãããŸãã
SUSv3 ã«ããã°ã
background process group
(Or background job.) Any process group, other than a foreground process
group, that is a member of a session that has established a connection with
a controlling terminal.
ãšããããã«ãbackground process group ã¯å®çŸ©ã«ããå¶åŸ¡ç«¯æ«ãæã€ãã®
ã®ãã¡ foreground process group ã§ãªããã®ãæãã®ã§ãå¶åŸ¡ç«¯æ«ãæããª
ããã®ã¯ background process group ãšã¯åŒã°ãªãã®ã§ã¯ãªãã®ã§ããããã
ãããšã SUSv3 ãšã¯ç°ãªãå®çŸ©ãªããæ
£ç¿ããããšããããšã§ããããã
--
[ç°äž å²][ããªã ããã][Tanaka Akira]
ããµãã! ãããã¡ããäœæŠã§ãâã(Little Worker, æ¡éçäžž)
In article <hvo4rdnr4...@coulee.a02.aist.go.jp>,
Tanaka Akira <a...@m17n.org> wrote:
> (Or background job.) Any process group, other than a foreground process
> group, that is a member of a session that has established a connection with
> a controlling terminal.
>
>ãšããããã«ãbackground process group ã¯å®çŸ©ã«ããå¶åŸ¡ç«¯æ«ãæã€ãã®
>ã®ãã¡ foreground process group ã§ãªããã®ãæãã®ã§ãå¶åŸ¡ç«¯æ«ãæããª
>ããã®ã¯ background process group ãšã¯åŒã°ãªãã®ã§ã¯ãªãã®ã§ããããã
ããïŒäºå®é¢ä¿ã¯ãšããããšããŠããã®è±æã¯ããèš³ãã®ãæ£ãã
ãããªæ°ããããã§ããã
ããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒã以å€ã®å
šãŠã®ããã»
ã¹ã°ã«ãŒãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ãå¶
埡端æ«ã«é¢é£ã¥ããããã»ãã·ã§ã³ã®ã¡ã³ãã®ããšãã
ããthatããã,ããäºã€ãè·šãã å
ã修食ããŠãããšæãããšã
ã,ãã§åºåãããéšåã修食çã«ããåããªãããã«æ±ãããŸã
ãããã®æã®äž»é¡ã¯ããããã®ã,ãã§åºåãããéšåã§ã¯ïŒ
ãå€åãconnectionãããæã€ãã§ã¯ãªã㊠TIOCSPGRP çãªé¢é£
ã¥ããæããŠãããã ãšæããŸãã
ïŒããããšã TIOCNOTTY ããã daemon é¡ã¯ãbackground process
ïŒgroupããšåŒããããããªãã®ããããïŒ
--
ããã ããã
In article <uptwby...@katsu.watanabe.name>,
WATANABE Katsuhiro <ka...@watanabe.name> wrote:
>> ç§ã®è¡šçŸã¯ãå
èšäºã®ãå¶åŸ¡ç«¯æ«ãã¯ãã®ããšãèšã
>> ããã£ãã®ã ãããšèšã£ãŠããã«éããªããŠããå¶åŸ¡ç«¯æ«ããäœãª
>> ã®ããè°è«ããŠããèš³ã§ã¯ãããŸããã
>
>ããããããšã¯éã«ãç§ã®æå³ã¯ãå°ããå¶åŸ¡ç«¯æ«ããäœãªã®ããš
>ãã®ç¹è³ªã ããè«ããããšã§ããã
ãããããããšã§ããã°ãç§ããããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒ
ã¶ãã§ãããããšåçããæç¹ã§ããç§ã¯ããããããå¶åŸ¡ç«¯æ«ã
ãšåŒãã§ããŸãããããŠãã®æå³ã«æŒããŠå¶åŸ¡ç«¯æ«ãšã¯ïŒïŒïŒããš
ç¶ããã°è¯ãã£ãããããªãã§ããããã
ãç§ã¯ãã®å
èšäºã§ã¯ããããæå³ã§ãå¶åŸ¡ç«¯æ«ããçšããŠããªã
ã£ããšæãããã®ã§ãéãæå³ã®åèªã«ã€ããŠèªèª¬ãå±éããããš
ããã§ãèšã£ãŠããå
å®¹ã¯æ£ãããšãäŒè©±ãæç«ããªããšæããŸã
ããïŒ
ãäŸãã°ããè»ã«ã¯é転å
èš±ãèŠããã«å¯ŸããŠãéããŸããè»ã¯èª
転è»ãä¹³æ¯è»ã«ãã€ããŠããŸããããããã®ä¹ç©ã¯é転å
èš±ãå¿
èŠ
ãšããŸããããšåè«ããŠãããããªãã®ã§ãã
ãåè
ã®ãè»ãããèªåè»ãã®æå³ã§çšããããŠããã®ã«å¯ŸããåŸ
è
ã¯ãè»èŒªãã®æå³ã§çšããŠãããšããç¹ã ããäºç¹ã§ãã£ãŠãå
è
ã®çºèšã¯å¥ã«ãèªè»¢è»ãä¹³æ¯è»é転å
èš±ãèŠãããšäž»åŒµããŠãã
èš³ã§ã¯ãããŸããããã
ãäœãè°è«ãããã®ããæããã«ãªãã°ããã®åŸãè»èŒªãšé転å
èš±
ã®é¢ä¿ããªã©ãšããç¡æå³ãªè°è«ã«ã¯çºå±ããªãçã§ãããè«ç¹ã
èŠå€±ããšããããç¡æå³ãªè°è«ã«ãªã£ãŠããŸããŸãã
ãå€åããã®å
èšäºã§ã¯ã端æ«å¶åŸ¡ããšããåèªã«åŒãããããŠã
ãshell ãå¶åŸ¡ãã端æ«ããšããæå³ã§ãå¶åŸ¡ç«¯æ«ããšèšã£ãŠããŸ
ã£ãããããªãããšæããã§ãã
ãæè¬ãcontrolling terminalãã®ããšãæããŠããèš³ã§ã¯ãããŸ
ãããããæž¡éããã®åè«ã¯å
šãåã¿åã£ãŠããªãã£ãããšã«ãªã
ãŸãã
ãæž¡éããã¯ãã®è«ç¹ã«æ°ã¥ããã«èªåã®èšãããããšã ãã䞻匵
ãç¶ããã®ã§ãç§ã«ãšã£ãŠã¯å
šç¶è°è«ã«ãªã£ãŠããªãã£ãã®ã§ããã
ïŒãå ã¿ã«ãã®ã端æ«å¶åŸ¡ããæå³ãææ§ã§ãããshell ã®ä»äºãš
ïŒããŠã®æèã§ã¯ ioctl() çãªå¶åŸ¡ãæããŸãããtermios çãª
ïŒå¶åŸ¡ãã端æ«å¶åŸ¡ããšåŒã¶ããšããããŸããããå¿è«ãã®æèã§
ïŒã¯åè
ã§ãã
>ãŸãã«ç§ã®æçš¿äŒå³ã©ããã§ããtrap & wait ãšå
šãç¡é¢ä¿ã«ã
>controllingãterminal ã«é¢ããäžè¬è«ã«çŠç¹ãåœãŠãããšããã®ã
>ç§ã®æçš¿ã§ãã
ããããªãã°ãã¯ãããã§ãããã§ãããŸãã§ãã
ïŒãå¥ã«ç§ãããããäžè¬ç¥èãæã£ãŠããªãèš³ãããããŸãããã
ïŒçšèªãçšæ³ã¯ãšãããããã®æã®ç¥èãç¡ããš shell ã®éçºãª
ïŒããåºæ¥ãŸãããããã
>ç§ã¯ãã®ãæ¬é¡ã§ãªãã»æ¬æ¥ã®æèã§ã¯ãªãéšåããããçãããš
>è°è«ãããã£ãã®ã§ãã
ãã§ãsignal ãšç«¯æ«ãšã®é¢ä¿ã«èšåããå Žåã«ã¯ããcontrolling
terminalãããã¯ãTIOCSPGRP ããã端æ«ãã®æ¹ããã坿¥ãªé¢ä¿
ã«ããããšã¯çè§£ããŠé ããã§ããããïŒ
ïŒãã²ãã£ãšãããã端æ«ãçŽæ¥ background process ã« SIGHUP
ïŒãéããã㪠UNIX ã®å®è£
ãããã®ããç¥ããŸãããã©ããã®å Ž
ïŒåãcsh ã® nohup ãšã bash ã® disown ãšãå
šãç¡å¹ã«ãªã£ãŠ
ïŒããŸããŸããã
--
ããã ããã
> ããïŒäºå®é¢ä¿ã¯ãšããããšããŠããã®è±æã¯ããèš³ãã®ãæ£ãã
> ãããªæ°ããããã§ããã
> ããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒã以å€ã®å
šãŠã®ããã»
> ã¹ã°ã«ãŒãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ãå¶
> 埡端æ«ã«é¢é£ã¥ããããã»ãã·ã§ã³ã®ã¡ã³ãã®ããšãã
> ããthatããã,ããäºã€ãè·šãã å
ã修食ããŠãããšæãããšã
> ã,ãã§åºåãããéšåã修食çã«ããåããªãããã«æ±ãããŸã
> ãããã®æã®äž»é¡ã¯ããããã®ã,ãã§åºåãããéšåã§ã¯ïŒ
ãªãã§ãã?
è±èªã®ææ³ãèªåèªèº«ã®èšèã§èª¬æããèªä¿¡ã¯ãªãã®ã§ãgoogle ã§ãè±èª æ
æ³ ã«ã³ããã§ã²ããŠã¿ãã®ã§ãããæåã«ã§ãŠãã
http://www5a.biglobe.ne.jp/~t-kite/koubun2.htm ãç§ã®è§£éãšäžèŽããŸãã
| ïŒããæ¿å
¥ã«æ°ãã€ãããã
|
| ãäžè¬ã«ã«ã³ããšã«ã³ãã«ã¯ããŸããæã¯ãæ¿å
¥ãå€ããã«ã³ããšã«ã³ãã«ã¯ããŸããæãé£ã°
| ããŠããããæã®æ§æäžã€ãªãã£ãŠãããïŒæãæç«ãããïŒãã«ã³ããšã«ã³ãã«ã¯ããŸããæ
| ã¯æ¿å
¥ãšèããŠã»ãŒééããªãã
ãããŠã
Any process group, other than a foreground process
group, that is a member of a session that has established a connection with
a controlling terminal.
ãšããæã¯ãŸãã«ãã®äŸã®ããã«æããŸããã€ãŸã , ã§ã¯ããŸãããother
than a foreground process groupãã®éšåãé£ã°ããŠ
Any process group that is a member of a session that has
established a connection with a controlling terminal.
ãšããŠãæãæç«ããã®ã§ãother than a foreground process group ã®éšå
ã¯æ¿å
¥ã§ãããthat 以éã¯æ¿å
¥éšåã§ã¯ãªã Any process group ã修食ããŠ
ããããšããã®ãç§ã®è§£éã§ãã
ã€ãŸããç§ãªãã«èš³ããšã
å¶åŸ¡ç«¯æ«ãšæ¥ç¶ãããã»ãã·ã§ã³ã®ã¡ã³ãã§ãããã¹ãŠã®ããã»ã¹ã°ã«ãŒã
(ãã ããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããé€ã)
ãšãªããŸãã
ãªããother than a foreground process group ã®éšåãæ¿å
¥ã§ã¯ãªããšè§£é
ãããã®ã§ãããã?
> ïŒããããšã TIOCNOTTY ããã daemon é¡ã¯ãbackground process
> ïŒgroupããšåŒããããããªãã®ããããïŒ
ç§ã¯(åŒçšããæç« ã«ãã)åŒã°ãªããšè§£éããŠããŸãã
shi...@nintendo.co.jp (Takashi SHIRAI) writes:
> ãããããããšã§ããã°ãç§ããããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒ
> ã¶ãã§ãããããšåçããæç¹ã§ããç§ã¯ããããããå¶åŸ¡ç«¯æ«ã
> ãšåŒãã§ããŸãããããŠãã®æå³ã«æŒããŠå¶åŸ¡ç«¯æ«ãšã¯ïŒïŒïŒããš
> ç¶ããã°è¯ãã£ãããããªãã§ããããã
ãã®å¿
èŠã¯ãªããšæããŸããã
UNIX ã®äžçã§å眮ããªããå¶åŸ¡ç«¯æ«ãšããèšèãåºãŠããå Žåã
ééããªãæž¡éããã®æå³ã§ã®å¶åŸ¡ç«¯æ«ãæå³ããŸãããã
(éãæå³ã§äœ¿ã£ãŠããäŸãç¥ããªããã§ããããããã£ãå Žåã«ã¯
èè
ã®èª€è§£ã®å¯èœæ§ãé«ããšæããŸãã)
> ããããªãã°ãã¯ãããã§ãããã§ãããŸãã§ãã
ãã®éãã ãšæããŸãã:-)
æž¡éãããåé¡ãæãã
> ã€ãŸã background process ã¯ç«¯æ«ãæããªãããšãå€ããŸãã
ãšãã衚çŸã¯ã
ã€ãŸã端æ«ã¯ãforeground process group ã«ã ããã·ã°ãã«ã
éãããšãå€ããŸãã
ãšæžãã®ããããæ£ç¢ºã ã£ãããã§ãã
TIOCSPGRP ã«é¢ããèšè¿°ããprocess ãïœæã€ããšè¡šçŸããã®ã¯ãã«ãŒãã«ã®
å®è£
ãç¥ã£ãŠãã人é (== æž¡éãã) ã«ã¯ãéåæãããããã§ãã
ã»å process ã¯ãå¶åŸ¡ç«¯æ«ãæã£ãŠããã
(background ã«ãªã£ãŠãããã£ã±ãæã£ãŠããã)
ã»ç«¯æ«ã¯ãforeground process group ãæã€ã
(TIOCSPGRP ã¯ããã® foreground process group ãèšå®ãã)
ãªããã§ãããâŠ
--
so...@sra.co.jpããSoftware Research Associates, Inc.ãæœç°å²ä¹ (SODA Noriyuki)
> WATANABE Katsuhiro <ka...@watanabe.name> wrote:
> >2. ãŠãŒã¶ã(bg proc. ã®å¶åŸ¡)端æ«ãã logout ããæãªã©ã¯ã
> > bg proc.ãã« SIGHUP ãéãããŠããŸãã
æž¡éããã®ããã®èšè¿°ã¯äžæ£ç¢ºãªæ°ãããŸãã
logout ããæ (== ã»ãã·ã§ã³ã»ãªãŒããŒãæ»ãã æ)ã« ã«ãŒãã«ãã·ã°ãã«
ãéãã®ã¯ãforeground process group ã«å¯ŸããŠã ããããªãã§ããããã
shi...@nintendo.co.jp (Takashi SHIRAI) writes:
> ãããã¯å®å
šã« shell ã®ãä»äºã§ããkernel ã®ä»äºã§ã¯ãããŸã
> ããbackground process ã« SIGHUP ãéããããã©ãã㯠shell
> ã®å®è£
ã«äŸåããŸãã
確ãã« {,t}csh ãªããã¯ããã®çš®ã®åŠçããã£ãŠããŸããã
# ããçš®ã®ç¶æ³ã§ãæå³ããªãããã»ã¹ã« SIGHUP ãéãããçµéšã
# ããããšããã£ãŠãå人çã«ã¯ããã®åŠçã¯äœèšãªãäžè©±ã ãš
# æã£ãŠãŸããã
ãã
> ãå ã¿ã« Bourne shell ã®å®è£
ã§ã¯ãshell ã process å¶åŸ¡ãè¡
> ãªããªã (fg ã bg ãéå®è£
) ã®ã§ãã&ãã§èµ·åããã process
> 㯠logout åŸãçãç¶ããŸãã
ãã®çœäºããã®èšè¿°ãããŸãééãã ãšæããŸãã
ãããã·ã§ã«ããžã§ãå¶åŸ¡ãå
šãè¡ãªããªãå Žåã«ã¯ãã&ãã§
èµ·åãããããã»ã¹ããå¶åŸ¡ç«¯æ«ããèŠãã° foreground process
group ã«å±ããŸãããã®å Žåããã°ã¢ãŠãããæã«ã(ã·ã§ã«ã§ã¯
ãªã) ã«ãŒãã«ãããSIGHUP ãéãããçã§ãã
ãã ããä»ã§ã¯ ãžã§ãå¶åŸ¡ãè¡ãªã bourne shell ããã (BSD ç³»ã®
/bin/sh ã§ãã ash ãªãããããã§ã)ããããã bourne shell ã§ã¯ã
ã&ãã§èµ·åãããããã»ã¹ã¯ãå¶åŸ¡ç«¯æ«ããèŠã background process group
ã«å±ããŸãããã®å Žåã確ãã«ã«ãŒãã«ã¯ããã»ã¹ã«SIGHUP ãéããŸãããã
ã&ãã§èµ·åãããããã»ã¹ã¯ logout åŸãçãç¶ããŸãã
ããããããã¯ãbourne shell ããžã§ãå¶åŸ¡ãè¡ãªããªããããã§ã¯
ãªããããã® bourne shell ããžã§ãå¶åŸ¡ãè¡ãªã£ãŠãããããã§ãã
ã€ãŸããçœäºããã®èšè¿°ã¯ãæçµçãªæ¯èãã¯åã£ãŠãããã§ããã
åå ã¯éã§ãã
æã
ããžã§ãå¶åŸ¡ãªããŠãã®ããªãã£ãããã¯ãnohup ã³ãã³ãã§
æç€ºçã« SIGHUP ãç¡èŠããããã«æå®ããªããšãbackground process
ã¯ãã°ã¢ãŠãæã«æ®ºãããŠããŸã£ããã®ã§ãããããããã® bourne shell ã
ãžã§ãå¶åŸ¡ãè¡ãªããªããã®ã§ããã°ãä»ã§ããããªãçã§ãã
ãšããããã§ããã°ã¢ãŠãæã« SIGHUP ãéãåŠçãããããã¯å®å
šã« shell
ã®ãä»äºã§ãããšè¡šçŸããã®ããããã¯ããã§ãŸããã§ãã
> >3. bg proc. ããåºåã詊ã¿ãŠããé垞㯠SIGTTOU ã§åæ¢ããŸããã
>
> ãããã shell ã®å®è£
äŸåã®çã§ãã
ããã¯ãshell ã®å®è£
ã«ã¯é¢ä¿ãªãã§ãããã
ãstty -tostopããšããŠããã°ãæž¡éããã®æžããããã«åäœããŸããã
ãstty tostopããšããŠããã°ãçœäºããã®æžããããã«åäœããçã§ãã
ãã® stty ã®èšå®ãç¡èŠããŠããŸããã㪠shell ã®å®è£
ãååšããã®ã§
ãããã?
> ïŒãäœããtty driver ã®å®è£
ã«ãã£ãŠã¯ local mode LTOSTOP ã®
> ïŒç¶æ
ã«äŸåããŸãã
ããã¯ããtty driver ããžã§ãå¶åŸ¡æ©èœãæããŠããéãåžžã«ã端æ«ã®
local mode ãšã㊠TOSTOP ãèšå®ãããŠãããåŠãã«ãã£ãŠæ±ºãŸããŸãã
ãšæžãã¹ãã ãšæããŸãã
ãªããtty driver ããžã§ãå¶åŸ¡æ©èœãæããŠããªãå Žåã«ã¯åžžã«ãæž¡éãã
ã®æžããéããbackground ã§ãæ¢ãŸããã«åäœãããšæããŸãã
> ããã®ã端æ«ã«å¯Ÿãã foreground processããšããçšæ³ã¯ POSIX
> ã§åºãŠæ¥ã termios çšèªã ãšæããŸããã
çšèªã®æ¹ã®èµ·æºã¯è¯ãåãããªããã§ãããæŠå¿µèªäœã¯ãTIOCSPGRP ã
æåã«å®è£
ããã4BSD ãèµ·æºãããªãã§ããããã
> æ¬é¡ã«é¢ä¿ãªããã§ãããã€ãã§ãªã®ã§
> > >3. bg proc. ããåºåã詊ã¿ãŠããé垞㯠SIGTTOU ã§åæ¢ããŸããã
> >
> > ãããã shell ã®å®è£
äŸåã®çã§ãã
>
> ããã¯ãshell ã®å®è£
ã«ã¯é¢ä¿ãªãã§ãããã
> ãstty -tostopããšããŠããã°ãæž¡éããã®æžããããã«åäœããŸããã
> ãstty tostopããšããŠããã°ãçœäºããã®æžããããã«åäœããçã§ãã
> ãã® stty ã®èšå®ãç¡èŠããŠããŸããã㪠shell ã®å®è£
ãååšããã®ã§
> ãããã?
zshãšãã§ã
% ttyctl -f
ãšãããšããšãã·ã§ã«ã«å¶åŸ¡ãæ»ã£ãŠããæç¹ã§ttyã®ã¢ãŒããresetããŸãã
ãã ãã©ããŸã§æ»ããŠããã®ãã¯ç¢ºèªããŠããŸãããã
ãã£ãšããããã¯ã·ã§ã«ã®å®è£ ãšããããããè¿œå æ©èœã®è©±ãã§ããã
--
ç¥æž éå, æ ªåŒäŒç€Ÿãžã§ãã(京éœ) / Takahiro Kambe, JEPRO Co., Ltd.
In article <hvoznve...@coulee.a02.aist.go.jp>,
Tanaka Akira <a...@m17n.org> wrote:
>ãªããother than a foreground process group ã®éšåãæ¿å
¥ã§ã¯ãªããšè§£é
>ãããã®ã§ãããã?
ãæ¿å
¥éšåãšæãããšããã®éšåã¯å¯æ¬¡çãªãã®ã§æãèšãããéš
åã¯ãã®åŸç¶éšåãšããããšã«ãªã£ãŠããŸããŸãããããšããããš
ã¯ãbackground process ãšã¯äœããšãã説æã§ã¯
第äžçŸ©: å¶åŸ¡ç«¯æ«ãæã€ããš
第äºçŸ©: foreground ã§ãªãããš
ãšããåªå
é äœã«ãªã£ãŠããŸããããã¯éãªããããªãããšæã£ã
次第ã§ãã
ãbackground process ã®èª¬æãããæã«ãã©ã£ã¡ãçæ¹ã ãéžã
ã§èª¬æãããšèšããããæ®éã¯åŸè
ãéžã³ãŸãããïŒå°ãªããšãå
è
ã ãã§æžãŸããŠããŸãã®ã¯ããªã誀解ãæããšæããã§ããã
ïŒãã©ã£ã¡ã®æå³ã«ããããã£ãšè§£éã®ãããä»åšããäœå°ã®ç¡ã
ïŒæç« ã«ããã°è¯ãã£ãã®ã«ã
>> ïŒããããšã TIOCNOTTY ããã daemon é¡ã¯ãbackground process
>> ïŒgroupããšåŒããããããªãã®ããããïŒ
>
>ç§ã¯(åŒçšããæç« ã«ãã)åŒã°ãªããšè§£éããŠããŸãã
ããã®å²ã«ã¯ google ã§ãdaemon background-processãã§æ€çŽ¢ã
ãããšãçµæ§ãªæ°ã®ãdaemon = background processãççšæ³ãèŠ
ã€ãããŸãããæ£ããçè§£ãããŠããªã人ãå€éãããšããããšãª
ãã§ããããã
ãå¶åŸ¡ç«¯æ«ãæããªã process ã background process group ãš
ã¯åŒã°ãªãçç±ã¯ã©ããã«æžããŠãã£ããããŸããïŒãããããã
ããã®ã¯äœã«å±ãããã§ãããïŒ
1.foreground process group æ±ãã
2.foreground ã§ã background ã§ããªãç¹æ®ãª processã
3.ãããã process group ã§ã¯ç¡ãã
ãå€åãå¶åŸ¡ç«¯æ«ã«å¯Ÿã㊠fore/background ãšåŒãã§ããã®ã§ 2.
ã«ãªããšããããšãªãã§ããããã
--
ããã ããã
In article <xqr1y8q...@srapc342.sra.co.jp>,
Noriyuki Soda <so...@sra.co.jp> wrote:
>ãããã·ã§ã«ããžã§ãå¶åŸ¡ãå
šãè¡ãªããªãå Žåã«ã¯ãã&ãã§
>èµ·åãããããã»ã¹ããå¶åŸ¡ç«¯æ«ããèŠãã° foreground process
>group ã«å±ããŸãããã®å Žåããã°ã¢ãŠãããæã«ã(ã·ã§ã«ã§ã¯
>ãªã) ã«ãŒãã«ãããSIGHUP ãéãããçã§ãã
ãã§ã¯ä»¥äžã®æå㯠kernel ã®å®è£
ãã¹ãšããããšã«ãªããã§ãã
ããïŒèªå®
ãªã®ã§å€ãã®ç°å¢ã§è©Šããªã㊠FreeBSD 2.2.6-RELEASE
ã§ã®ã¿ç¢ºèªããŠããŸããã
$ cat test.c
main()
{
if (!fork()) execl("/bin/sleep", "sleep", "3600", 0);
}
$ cc -o test test.c
$ ./test
$ exit
(telnet login ãçŽã)
$ ps ux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
shirai 509 3.1 0.9 764 852 p2 Ss 1:34AM 0:00.27 -bash (bash)
shirai 507 0.0 0.1 172 48 p2- I 1:34AM 0:00.00 sleep 3600
shirai 522 0.0 0.3 644 276 p2 R+ 1:35AM 0:00.00 ps -ux
$ kill 507
$ ps ux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
shirai 509 0.0 0.9 764 852 p2 Ss 1:34AM 0:00.28 -bash (bash)
shirai 523 0.0 0.3 640 272 p2 R+ 1:36AM 0:00.00 ps -ux
$
ããã® test.c ã¯äžäœã©ãã§ job control ãè¡ãªã£ãŠãããã§ã
ããïŒã¡ãããš kill åºæ¥ããšããããšã¯æ»ã«æããèš³ã§ããªãã
ãã§ããå¿è« SIGHUP ã® mask ãããã£ãŠãŸããã
>ãã ããä»ã§ã¯ ãžã§ãå¶åŸ¡ãè¡ãªã bourne shell ããã (BSD ç³»ã®
ãããã¯ãBourne shell ç³» shellãã§ãã£ãŠãBourne shellãã§
ã¯ç¡ããšæããŸããå°ãªããšãç§ã¯ããããåºå¥ããŠããŸããash
ã ksh ããBourne shellããšã¯åŒã³ãŸããã
ïŒãSteve Bourne ãªããã©ãã«ã絡ãã§ãªãããsource ã ã£ãŠã©
ïŒããã©ãèŠãã£ãŠå
šãã®å¥ç©ã§ããããBourne shell ã® source
ïŒãªããŠãããã C èšèªã«ããèŠããªã :-)
>ããããããã¯ãbourne shell ããžã§ãå¶åŸ¡ãè¡ãªããªããããã§ã¯
>ãªããããã® bourne shell ããžã§ãå¶åŸ¡ãè¡ãªã£ãŠãããããã§ãã
>ã€ãŸããçœäºããã®èšè¿°ã¯ãæçµçãªæ¯èãã¯åã£ãŠãããã§ããã
>åå ã¯éã§ãã
ãå°ãªããšã NEWS-OS 4.2.1 ã«å®è£
ãããŠãã /bin/sh ã¯ãman
page ã®èšè¿°ã«ãããš job control ãè¡ãªããªãããã§ãããã&ã
ä»ã§èµ·åãã process 㯠logout åŸãçãç¶ããŠããŸããã
ãNEWS-OS kernel ãå®è£
ãã¹ã䟵ããŠãããã§ããïŒå ã¿ã«æ£ã
ãæåã瀺ã UNIX kernel ã®äŸãæããŠé ããªãã§ããããïŒ
>> ãããã shell ã®å®è£
äŸåã®çã§ãã
>
>ããã¯ãshell ã®å®è£
ã«ã¯é¢ä¿ãªãã§ãããã
>ãstty -tostopããšããŠããã°ãæž¡éããã®æžããããã«åäœããŸããã
>ãstty tostopããšããŠããã°ãçœäºããã®æžããããã«åäœããçã§ãã
>ãã® stty ã®èšå®ãç¡èŠããŠããŸããã㪠shell ã®å®è£
ãååšããã®ã§
>ãããã?
ããã® stty ã«çžåœããéšåã shell ãå®è£
ããããšã«ãã£ãŠã©
ãã«ã§ãå€ãããšããæå³ã§ãshell ã®å®è£
äŸåããšèšã£ãèš³ã§ãã
å®éã¯ãã®èŸºããããã shell ã¯ç¥ããªãã®ã§ãçã§ãããšããŸ
ããã
>> ïŒãäœããtty driver ã®å®è£
ã«ãã£ãŠã¯ local mode LTOSTOP ã®
>> ïŒç¶æ
ã«äŸåããŸãã
>
>ããã¯ããtty driver ããžã§ãå¶åŸ¡æ©èœãæããŠããéãåžžã«ã端æ«ã®
>local mode ãšã㊠TOSTOP ãèšå®ãããŠãããåŠãã«ãã£ãŠæ±ºãŸããŸãã
>ãšæžãã¹ãã ãšæããŸãã
ã確ãã«èè¶³ããã§ãããããshell ã®å®è£
äŸåãã§ã¯æå³ãéã
ãªãããšæã£ãŠè£è¶³ããã€ãããåŽã£ãŠããããªè¡šçŸã«ãªã£ãŠããŸ
ã£ãããã§ãã
>> ããã®ã端æ«ã«å¯Ÿãã foreground processããšããçšæ³ã¯ POSIX
>> ã§åºãŠæ¥ã termios çšèªã ãšæããŸããã
>
>çšèªã®æ¹ã®èµ·æºã¯è¯ãåãããªããã§ãããæŠå¿µèªäœã¯ãTIOCSPGRP ã
>æåã«å®è£
ããã4BSD ãèµ·æºãããªãã§ããããã
ãTIOCSPGRP èªäœã¯ãã£ãšåãããããšæããŸããå°ãªããšã以äž
URL ã«ãã 2.9.1BSD ã® tty(4) ã«ã¯èŒã£ãŠããŸããã
http://www.freebsd.org/cgi/man.cgi?query=tty&apropos=0&sektion=4&manpath=2.9.1+BSD&format=html
--
ããã ããã
In article <xqr3ct6...@srapc342.sra.co.jp>,
Noriyuki Soda <so...@sra.co.jp> wrote:
>> ãããããããšã§ããã°ãç§ããããã¯äœãããŠãå¶åŸ¡ç«¯æ«ããšåŒ
>> ã¶ãã§ãããããšåçããæç¹ã§ããç§ã¯ããããããå¶åŸ¡ç«¯æ«ã
>> ãšåŒãã§ããŸãããããŠãã®æå³ã«æŒããŠå¶åŸ¡ç«¯æ«ãšã¯ïŒïŒïŒããš
>> ç¶ããã°è¯ãã£ãããããªãã§ããããã
>
>ãã®å¿
èŠã¯ãªããšæããŸããã
>UNIX ã®äžçã§å眮ããªããå¶åŸ¡ç«¯æ«ãšããèšèãåºãŠããå Žåã
>ééããªãæž¡éããã®æå³ã§ã®å¶åŸ¡ç«¯æ«ãæå³ããŸãããã
ããå眮ããªããã§ãããïŒç§ãããã㯠TIOCSPGRP ã®æå³ããš
å眮ãããåŸãå»¶ã
ãšãcontrolling terminalãã®è©±ãç¶ããã®ã§
ããã®å¿
èŠãã説ããã®ã§ããã
ããããããå¶åŸ¡ç«¯æ«ããšããåèªã§äœãæãããè«ç¹ã§ãããšèš
åããèš³ã§ããããããããåŸã¯ãã®çšæ³ã«ã€ããŠæèããŠè©±ãé²
ããã¹ãã ãšæããŸãã
ïŒãèšèã®çšæ³ã®ééããšäºå®èªèã®ééããšãæå³çã«æ··åããŠ
ïŒããããã«ç§ã«ã¯èªããŠããŸã£ãèš³ã§ãã
>TIOCSPGRP ã«é¢ããèšè¿°ããprocess ãïœæã€ããšè¡šçŸããã®ã¯ãã«ãŒãã«ã®
>å®è£
ãç¥ã£ãŠãã人é (== æž¡éãã) ã«ã¯ãéåæãããããã§ãã
ãå€å shell å®è£
ã®èгç¹ãããã®ãèŠéããçµæã®è¡šçŸã ã£ãã
ã§ãããããå¥ã«ç§ã ã£ãŠãã®èŸºãã®è©±ãç¥ããªãèš³ã§ã¯ãªããã§
ããã©ã
ãshell ããèŠããšããèªåã®ç®¡çäžã®ç«¯æ«ããåã®ç®¡çäžã®ç«¯æ«ã
ãšãã£ãèªèã®ä»æ¹ãããã¡ãªã®ã§ãæã¡ç©çãªã€ã¡ãŒãžãæ±ããŠ
ããŸããã ãšæããŸãã
ããã ãåŠäœããäžå¹Žä»¥äžãåã®èšäºã§ãããæžããŠããããšèªäœ
ã®æå³ã¯èªã¿åããŠãããããã©ãããæå³ã§æžããããªããŠæ¶ã
ãŠãŸãããã
ãçšèªã®çšæ³ãªããŠæ¬çãšã¯çŽæ¥é¢ä¿ãããŸãããããããããã
äœãèšãããã£ãã®ããŸã§ããæ¶ããŠããããŸããã
ïŒãå»¶ã
ãšåœããåã®ç¥èã解説ããŠããããšãããèŠããšãæœç°
ïŒããã«ãæž¡éããã«ããåãªã衚çŸäžã®åé¡ãããªããŠãªããäœ
ïŒçšé¿åã®åã ãšæãããŠãã ããªïŒïŒïŒã
--
ããã ããã
ãå¯ãŒããŠãŸãããèšæ£ã
In article <ak5sr4$phm$2...@nsvn01.zaq.ne.jp>,
Takashi SHIRAI <shi...@nintendo.co.jp> wrote:
>ããããã§ãã
>>ãããã·ã§ã«ããžã§ãå¶åŸ¡ãå
šãè¡ãªããªãå Žåã«ã¯ãã&ãã§
>>èµ·åãããããã»ã¹ããå¶åŸ¡ç«¯æ«ããèŠãã° foreground process
>>group ã«å±ããŸãããã®å Žåããã°ã¢ãŠãããæã«ã(ã·ã§ã«ã§ã¯
>>ãªã) ã«ãŒãã«ãããSIGHUP ãéãããçã§ãã
ãjob control ãç¡ãèš³ãªã®ã§ãã&ãä»ããã&ãç¡ããå
šéšåäž
ã® process group ã«å±ããããšã«ãªããshell èªèº«ã foreground
ãªãã°åã¯å
šéš foreground ã§ãããèããŠã¿ãã°åœããåã®è©±ã§ã
>$ cat test.c
>main()
>{
> if (!fork()) execl("/bin/sleep", "sleep", "3600", 0);
>}
>$ cc -o test test.c
>$ ./test
>$ exit
ãããã§ login shell ããèµ·åããŠããã®ãè¯ããªãèš³ã§ããã
ãããã¡ãããšéœå 2 å fork() ãããŠããŸã£ãŠèŠªåé¢ä¿ãåã
é¢ãããŠã./test ãæ»ãã é端㫠/bin/sleep 㯠init ã«åŒãå
ãããŠããŸããŸããã
ã./test ã exec ./test ãšããŠèµ·åããŠãããšã/bin/sleep ã¯
äžèŠªçã®åã«ãªã£ãŠã¡ãããšæ»ãã§ãããŸããã
>ãå°ãªããšã NEWS-OS 4.2.1 ã«å®è£
ãããŠãã /bin/sh ã¯ãman
>page ã®èšè¿°ã«ãããš job control ãè¡ãªããªãããã§ãããã&ã
>ä»ã§èµ·åãã process 㯠logout åŸãçãç¶ããŠããŸããã
ããããã²ãã£ãšããã shell ãã /bin/sh ãèµ·åããŠãããã
ç¥ããŸããã
ãå ã¿ã«ãPOSIX ã§ã¯ shell 㯠job control ãããããšã«ãªã£ãŠ
ããŸãã®ã§ãshell ã SIGHUP ãååããšå
šãŠã®å process group
ã« SIGHUP ãéã£ãŠããæ»ã¬ä»æ§ã«ãªã£ãŠããããšæããŸãã
ããã®è©±ãš Bourne shell ãšãæ··åããŠããã¿ããã§ããã
--
ããã ããã
> ãæ¿å
¥éšåãšæãããšããã®éšåã¯å¯æ¬¡çãªãã®ã§æãèšãããéš
> åã¯ãã®åŸç¶éšåãšããããšã«ãªã£ãŠããŸããŸãããããšããããš
> ã¯ãbackground process ãšã¯äœããšãã説æã§ã¯
> 第äžçŸ©: å¶åŸ¡ç«¯æ«ãæã€ããš
> 第äºçŸ©: foreground ã§ãªãããš
> ãšããåªå
é äœã«ãªã£ãŠããŸããããã¯éãªããããªãããšæã£ã
> 次第ã§ãã
ã€ãŸããbackground process ã«é¢ããèªåèªèº«ã®èãã«ã²ãããããããã§
ããããŸããããããããããããšãããšããã§ããã
> ãbackground process ã®èª¬æãããæã«ãã©ã£ã¡ãçæ¹ã ãéžã
> ã§èª¬æãããšèšããããæ®éã¯åŸè
ãéžã³ãŸãããïŒå°ãªããšãå
> è
ã ãã§æžãŸããŠããŸãã®ã¯ããªã誀解ãæããšæããã§ããã
>
> ïŒãã©ã£ã¡ã®æå³ã«ããããã£ãšè§£éã®ãããä»åšããäœå°ã®ç¡ã
> ïŒæç« ã«ããã°è¯ãã£ãã®ã«ã
äž¡æ¹èª¬æãã¹ãã§ãå®éããããŠããã®ã§ã¯?
ãããªããšãç§ã¯ãã®æç« ãäžæã«è§£éã§ãããšæã£ãŠããŸãããåé¡ãªããš
æã£ãŠããŸãã
> ããã®å²ã«ã¯ google ã§ãdaemon background-processãã§æ€çŽ¢ã
> ãããšãçµæ§ãªæ°ã®ãdaemon = background processãççšæ³ãèŠ
> ã€ãããŸãããæ£ããçè§£ãããŠããªã人ãå€éãããšããããšãª
> ãã§ããããã
SUSv3 ã ããæ£ããä»ã¯ééã£ãŠãããšããç«å Žããšããªãã°ããã®ãšããã§
ãããã
ã§ãã<hvo4rdnr4...@coulee.a02.aist.go.jp> ã®æåŸã§è§Šããããã«ã
ä»ã®å®çŸ©ã»æ
£ç¿ãããããç¥ããŸããã
> ãå¶åŸ¡ç«¯æ«ãæããªã process ã background process group ãš
> ã¯åŒã°ãªãçç±ã¯ã©ããã«æžããŠãã£ããããŸããïŒ
ç§ã¯ç¥ããŸããã
SUSv3 ã«ã€ããŠååã«ææ¡ããŠããããã§ã¯ãããŸããã®ã§ãæžããŠããªããš
ä¿èšŒããããšãã§ããŸãããã
Takashi SHIRAI wrote:
> ã¯ãbackground process ãšã¯äœããšãã説æã§ã¯
> 第äžçŸ©: å¶åŸ¡ç«¯æ«ãæã€ããš
> 第äºçŸ©: foreground ã§ãªãããš
> ãšããåªå
é äœã«ãªã£ãŠããŸããããã¯éãªããããªãããšæã£ã
> 次第ã§ãã
> ãbackground process ã®èª¬æãããæã«ãã©ã£ã¡ãçæ¹ã ãéžã
> ã§èª¬æãããšèšããããæ®éã¯åŸè
ãéžã³ãŸãããïŒå°ãªããšãå
> è
ã ãã§æžãŸããŠããŸãã®ã¯ããªã誀解ãæããšæããã§ããã
ããšããšåŒçšãããŠããæç« ã¯ãåç¬ã§background processã説æãã
æç« ãããªãã§ãããã
job control ãšã¯ããšããprocessgroupãšã¯ããšãã®å®çŸ©ã䞊ãã§ããäžã§ã®
ïŒé
ç®ãšããŠã®èª¬æã§ããããããã ãåãåºããŠããã®è§£éã§ã¯
説æãäžååã ãšããã®ã¯å€ã§ãããã
çœäºããã®å¥ã®èšäºããçœäºããã«ããèš³æãåŒçšããŸãã
> ããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒã以å€ã®å
šãŠã®ããã»
> ã¹ã°ã«ãŒãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ãå¶
> 埡端æ«ã«é¢é£ã¥ããããã»ãã·ã§ã³ã®ã¡ã³ãã®ããšãã
ãã®ããã«ãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ããšãã説æã
å
¥ãããã«èš³ãã®ã¯äžèªç¶ã§ã¯ãªãã§ããïŒããã©ã¢ã°ã©ãŠã³ãããã»
ã¹ã°ã«ãŒãã®å®çŸ©ã¯ãã¡ãããšå¥é
ç®ã§ååšããã®ã§ãããã
http://www.unix-systems.org/ã§SUSv3ãèªãã§ã¿ãŸãããã
(ç»é²ãå¿
èŠã§ãããç¡æã§ã)ãããã
job control
session
process group
controlling terminal
ããããèªã¿æ¯ã¹ãç·å倿ãšããŠã¯ã
ãå¶åŸ¡ç«¯æ«ãæããªãããã»ã¹ã°ã«ãŒãforegroundã§ã backgroundã§ããªãã
ãšããè§£éã«éœè€ã¯è³æã§ãã
æãèŠãŠãPOSIXã®ã»ãã調ã¹ãŠã¿ãŸãã
4.[23]BSDã®äžçã§ã®çšèªã§ã¯ãjobã¯ãããŸã§ãã³ãã³ãã€ã³ã¿ããªã¿ãš
端æ«ã«ãŸã€ããçšèªãªã®ã§ãããŒã¢ã³(ãµãŒãããã»ã¹)ã¯ãã©ã¢ã°ã©ãŠã³ã
ã§ãããã¯ã°ã©ãŠã³ãã§ããªãããã®æ å€ã§ããããšããè§£éã§ç¹ã«
éåæã¯ãªãã®ã§ããã©ã
éœè€æçŽãsai...@ist.osaka-u.ac.jp
Takashi SHIRAI wrote:
> ãå ã¿ã«ãPOSIX ã§ã¯ shell 㯠job control ãããããšã«ãªã£ãŠ
> ããŸãã®ã§ãshell ã SIGHUP ãååããšå
šãŠã®å process group
> ã« SIGHUP ãéã£ãŠããæ»ã¬ä»æ§ã«ãªã£ãŠããããšæããŸãã
> ããã®è©±ãš Bourne shell ãšãæ··åããŠããã¿ããã§ããã
ãšããã§ãã°ã¢ãŠãæã«ãã«ãŒãã«ããSIGHUPãéããšããã®ã¯ã©ã®UNIXã§ã®ã®
ã¯ãªãã§ããã£ãïŒ
SystemVRel2ã®ããã®èšæ¶ã§ãããïŒã€ãã§èµ·åããåããã»ã¹ããã®ãŸãŸæ®ã£ãŠã
èµ·åããgettyã端æ«ããªãŒãã³ã§ããã®ã ãå¶åŸ¡ç«¯æ«ãšããããšãåºæ¥ãªã
ãšããçç¶ã«åºäŒã£ãèšæ¶ããããŸãã
ãã®ããã»ã¹ãåŠçãçµãã£ãŠexitãããããã°ã€ã³ã§ããŸãããã
以åå¶åŸ¡ç«¯æ«ã§ãã£ããä»ã§ã¯å¯Ÿå¿ã¥ããæ¹æ¶ãããttyãžã®ãã¡ã€ã«ãã£ã¹ã¯ãªãã¿
ãreadããããšããããSIGHUPãéããããããªããšã¯SUSv3ã«æžããŠãããŸãã
éœè€æçŽãsai...@ist.osaka-u.ac.jp
> ãšããã§ãã°ã¢ãŠãæã«ãã«ãŒãã«ããSIGHUPãéããšããã®ã¯ã©ã®UNIXã§ã®ã®
> ã¯ãªãã§ããã£ãïŒ
å®ã¯ãã»ãã·ã§ã³ãªãŒããŒãæ»ãã ãšãã« foreground process group ã«
SIGHUP ãéããããšããã®ã¯ä»ååããŠç¥ã£ãã®ã§ãããæå
ã® FreeBSD ã¯
ãããã«ããããæåã瀺ããŸãããã㊠_exit(2) ã«ã¯
o If the process is a controlling process (see intro(2)), the SIGHUP
signal is sent to the foreground process group of the controlling
terminal, and all current access to the controlling terminal is re-
voked.
ãšæèšãããŠããŸããSUSv3 ã«ã exit() ã®ãšããã«åæ§ãªèšè¿°ããããŸããã
詳解 UNIX ããã°ã©ãã³ã°ã«ãåã·ã°ãã«ã®èª¬æã®ãšããã§è§ŠããããŠããŸãã
æŽå²çãªããšã¯ããããªãã®ã§ããããªããšãªãå€ãããããæ©èœãªæ°ãããŸ
ããåäœããèãããš job control ãè¡ãªããªã shell ã®ããã®æ©èœã§ããã
(job control ãè¡ãªã shell ãã exit/logout/^D ãªã©ã§ãã°ã¢ãŠãããå Ž
åãforeground process group 㯠shell ã®ã¿ããå«ãŸããŠããªããŠãSIGHUP
ã®éãå
ãååšããªããšæãã®ã§ã)
# 端æ«ãåæãããæã«ã»ãã·ã§ã³ãªãŒããŒã« SIGHUP ãéãããã®ã¯ç¥ã£ãŠ
# ãããã§ãã...
> In article <3D68F13D...@ics.es.osaka-u.ac.jp>,
> saitoh akinori <sai...@ics.es.osaka-u.ac.jp> writes:
> > ãšããã§ãã°ã¢ãŠãæã«ãã«ãŒãã«ããSIGHUPãéããšããã®ã¯ã©ã®UNIXã§ã®ã®
> > ã¯ãªãã§ããã£ãïŒ
Tanaka Akira wrote:
> æŽå²çãªããšã¯ããããªãã®ã§ããããªããšãªãå€ãããããæ©èœãªæ°ãããŸ
> ãã
ã§ãããã
åã®èšæ¶ã§ããããªãæã«åŸãç¥èã®äžã«ãããããã®ã§ãã
ããããããšãSystemVãšBSDã«åãããåããã®æ©èœããªããš
æã£ãã®ã§ããã
éœè€æçŽãsai...@ics.es.osaka-u.ac.jp
sai...@ics.es.osaka-u.ac.jpãã:
> åã®èšæ¶ã§ããããªãæã«åŸãç¥èã®äžã«ãããããã®ã§ããããã
> ãããšãSystemVãšBSDã«åãããåããã®æ©èœããªããšæã£ãã®ã§ã
> ãã
nohup.1ã¯V6ã«ãããŸããã
http://minnie.tuhs.org/UnixTree/V6/usr/man/man1/nohup.1.html
ãã ãV6ã§ã¯ãã«ãŒãã«ããéãã®ãããªããããªæ°ãããŸããã©ã€ãª
ã³ãºæ¬ãªãããã®ã§ãã£ãšexitã®ãšãããèŠãŠã¿ããã©ãããããããš
ã¯ããŠããªããã ããV6ã§ã¯ã·ã§ã«ããã£ãŠããã®ãããäžèšã®ãµã€ãã
shã®ãœãŒã¹ããããšæããã ãã©èŠã€ãããªãâŠ
V7ã«ãªããšBourne Shellãå
¥ããŸããããããã§ã«ãŒãã«ã«å
¥ã£ããš
ãã説ã¯ããããªãããããã°ãAT&Tç³»ã¯ãžã§ãã³ã³ãããŒã«ã®ä»£ãã«
shl(shell layer)ã䜿ã£ãŠããŸããããã
shlã£ãŠè§Šã£ãããšããªãâŠ ä¹ é
In article <3D68EF02...@ics.es.osaka-u.ac.jp>,
saitoh akinori <sai...@ics.es.osaka-u.ac.jp> wrote:
>倧éªå€§åŠã®éœè€ã§ã
>> ããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒã以å€ã®å
šãŠã®ããã»
>> ã¹ã°ã«ãŒãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ãå¶
>> 埡端æ«ã«é¢é£ã¥ããããã»ãã·ã§ã³ã®ã¡ã³ãã®ããšãã
>ãã®ããã«ãããã©ã¢ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããšã¯ããšãã説æã
>å
¥ãããã«èš³ãã®ã¯äžèªç¶ã§ã¯ãªãã§ããïŒããã©ã¢ã°ã©ãŠã³ãããã»
>ã¹ã°ã«ãŒãã®å®çŸ©ã¯ãã¡ãããšå¥é
ç®ã§ååšããã®ã§ãããã
ãè€æ°ã®ä¿®é£Ÿç¯ããã£ãŠããããããäœã修食ããŠããããæç¢ºã«
衚ãããã«ãã®éšåãè£ã£ãŠèš³ããèš³ã§ãããforeground process
group ã®é
ãåãããŠèªãã§ã¿ããšããããæå³ã§ããªãããã§ã
ãã
>http://www.unix-systems.org/ã§SUSv3ãèªãã§ã¿ãŸãããã
>(ç»é²ãå¿
èŠã§ãããç¡æã§ã)ãããã
ãSUSv2 ãªãã°ç»é²ã®å¿
èŠãç¡ããããªã®ã§èªãã§ã¿ããšãããã
ã¡ãã§ãåæ§ã®èª¬ææã«ãªã£ãŠããŸãããforeground ã®æ¹ã¯ SUSv3
ã®æ¹ãèŠãŠããªãã®ã§æ¯èŒåºæ¥ãŸãããã©ã
http://www.unix-systems.org/single_unix_specification_v2/xbd/glossary.html
ïŒããã ãbackground ã®æ¹ã®èª¬æã« foreground ãåºãŠæ¥ãŠãå
ïŒæ§ã« foreground ã®æ¹ã«ã background ãåºãŠæ¥ããšããå®çŸ©æ
ïŒã¯ç¡éã«ãŒãã«é¥ã£ãŠããŸãããããªãã ããïŒ :-)
>4.[23]BSDã®äžçã§ã®çšèªã§ã¯ãjobã¯ãããŸã§ãã³ãã³ãã€ã³ã¿ããªã¿ãš
>端æ«ã«ãŸã€ããçšèªãªã®ã§ãããŒã¢ã³(ãµãŒãããã»ã¹)ã¯ãã©ã¢ã°ã©ãŠã³ã
>ã§ãããã¯ã°ã©ãŠã³ãã§ããªãããã®æ å€ã§ããããšããè§£éã§ç¹ã«
>éåæã¯ãªãã®ã§ããã©ã
ãå·éã«å€æããŠã¿ããšãbackground ãšããã®ã¯ foreground ã®
察æ¯ãšããŠååšããåèªãªã®ã§ãããã㯠foreground ã«ãªãåŸã
ãšããæå³ãæã«å«ãã§ããããç¥ããŸããã
ãããããæå³ã§ã¯ãdaemon ã¯æ°žé ã« foreground ã«ã¯ãªãåŸãŸ
ãããããæ®éã® background process group ãšã¯åºå¥ããŠæãã
ã¹ããªãã§ãããã
ãçŽæçæŠå¿µã®ãè£ã§åããŠããããã»ã¹ããšããŠäžç·ããã«æã
ãŠããŸããšé§ç®ãªãã ãšæããŸãããåŸãŠããŠçŽæçæŠå¿µã®æ¹ãå€
ãæãã®ã§ãç§ãå«ããŠèª€èªããŠããŸã人ãå€ãããããªãããªïŒ
--
ããã ããã
Takashi SHIRAI wrote:
> ãå·éã«å€æããŠã¿ããšãbackground ãšããã®ã¯ foreground ã®
> 察æ¯ãšããŠååšããåèªãªã®ã§ãããã㯠foreground ã«ãªãåŸã
> ãšããæå³ãæã«å«ãã§ããããç¥ããŸããã
ãããªãã§ããããã
ãšãã«ãããã¯ã°ã©ãŠã³ãããžã§ãããããã¯ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒããš
å矩ã«ãªã£ãŠãããšãããããããæããŸãã
ãdaemonã¯ããã¯ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒãã ããšãã䞻匵ã«ã¯ãããããã
ãªããªãïŒãšæããŸããããdaemonã¯ããã¯ã°ã©ãŠã³ããžã§ãã ããšãããããšã
ãdaemonã«ã¯ãžã§ãã³ã³ãããŒã«ã¯å¹ããªããããªããããšèšããããªããŸãã
> ãããããæå³ã§ã¯ãdaemon ã¯æ°žé ã« foreground ã«ã¯ãªãåŸãŸ
> ãããããæ®éã® background process group ãšã¯åºå¥ããŠæãã
> ã¹ããªãã§ãããã
> ãçŽæçæŠå¿µã®ãè£ã§åããŠããããã»ã¹ããšããŠäžç·ããã«æã
> ãŠããŸããšé§ç®ãªãã ãšæããŸãããåŸãŠããŠçŽæçæŠå¿µã®æ¹ãå€
> ãæãã®ã§ãç§ãå«ããŠèª€èªããŠããŸã人ãå€ãããããªãããªïŒ
ããã§ããã
UNIXã§ã®ããé¢ããŠOSäžè¬ã§ã¯ãã€ã³ã¿ã©ã¯ãã£ãã§ãªãããã»ã¹å
šè¬ã
ããã¯ã°ã©ãŠã³ããšãããšæããŸããããbatchã¯é€ãããªïŒ
åœåã®UNIXã§ã¯
&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
nohupãã€&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
&ãªãã§èµ·åâãã©ã¢ã°ã©ãŠã³ã
daemonãâãæ£åŒçšèªãªããããã¯ã°ã©ãŠã³ããšåŒã¶ããšãããã
ã ã£ãã®ã§ã¯ãªãã§ããããã
ãžã§ãã³ã³ãããŒã«ãå°å
¥ãããŠè©±ãè€éã«ãªã£ã¡ãããŸããã
ã»ãã·ã§ã³ã°ã«ãŒããšã端æ«ã°ã«ãŒããšãããããããªæŠå¿µãå°å
¥ããªããš
ãããªããªã£ãã
éœè€æçŽãsai...@ics.es.osaka-u.ac.jp
> nohup.1ã¯V6ã«ãããŸããã
> http://minnie.tuhs.org/UnixTree/V6/usr/man/man1/nohup.1.html
ãšããããV7 ã§ã¯æ¶ããŠãSys III ã§åŸ©æŽ»ããŠããŸãã
>ãã ãV6ã§ã¯ãã«ãŒãã«ããéãã®ãããªããããªæ°ãããŸããã©ã€ãª
>ã³ãºæ¬ãªãããã®ã§ãã£ãšexitã®ãšãããèŠãŠã¿ããã©ãããããããš
>ã¯ããŠããªããã ããV6ã§ã¯ã·ã§ã«ããã£ãŠããã®ãããäžèšã®ãµã€ãã
>shã®ãœãŒã¹ããããšæããã ãã©èŠã€ãããªãâŠ
exit(2) ã« SIGHUP ã®èšè¿°ãåºãŠããã®ã¯ Sys III ããã§ãã
ïŒ BSD ç³»ã¯ããã¥ã¢ã«ããªãã®ã§æªç¢ºèªã§ã(_ _)
V7 ãŸã§ã¯çŸåšã®æå³ã®ããã»ã¹ã°ã«ãŒãããããŸããã§ãããããã«ãŒ
ãã«ããã°ã¢ãŠãã§ SIGHUP ãéãã®ã¯é£ãããšæããŸãããã®ç°å¢ã§
ã¯ãsh ããèªåãæ¬åœã«ãã°ã€ã³ã·ã§ã«ã§ãããããšã倿ããã®ã
é£ãããšæããŸãã®ã§ããã¯ã SIGHUP ãéãã®ã¯é£ãããšæããŸãã
V6 ã® nohup ã¯ãåç·åæïŒç«¯æ«ã®é»æºæãé»è©±åç·ã®åæïŒã§çºçã
ã SIGHUP ã®ããã§ã¯ãªãã§ããããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
In article <3D6ACD47...@ics.es.osaka-u.ac.jp>,
saitoh akinori <sai...@ics.es.osaka-u.ac.jp> wrote:
>倧éªå€§åŠã®éœè€ã§ã
>ãdaemonã¯ããã¯ã°ã©ãŠã³ãããã»ã¹ã°ã«ãŒãã ããšãã䞻匵ã«ã¯ãããããã
>ãªããªãïŒãšæããŸããããdaemonã¯ããã¯ã°ã©ãŠã³ããžã§ãã ããšãããããšã
>ãdaemonã«ã¯ãžã§ãã³ã³ãããŒã«ã¯å¹ããªããããªããããšèšããããªããŸãã
ãç§ã確ãã« foreground ã background ãã¯ãšããããjobãã«
ã¯éåæãæããŸããã§ãããjobãã§ã¯ç¡ããã®ã®ãprocessãã®
äžã€ã§ã¯ãããšããèªèãããã®ã§çŽæçéåæããããã§ããã
ãã
ãSUSv2 ã ãšãbackground processããšããã®ã¯ãŸããbackground
process groupããããã§ããã®äžå¡ãšããŠãbackground processã
ãåããŠæç«ããŠããããšã«ãªã£ãŠããŸãã
ãdaemon ã®å Žåã¯ãbackground process groupããšããŠèªããã
ãªããæ
ã«ãbackground processããšããŠãèªããããªããªã£ãŠã
ãŸãããã®èŸºããçŽæçéåæã«ç¹ããããããªãã§ããããã
>åœåã®UNIXã§ã¯
>&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
>nohupãã€&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
>&ãªãã§èµ·åâãã©ã¢ã°ã©ãŠã³ã
>daemonãâãæ£åŒçšèªãªããããã¯ã°ã©ãŠã³ããšåŒã¶ããšãããã
>ã ã£ãã®ã§ã¯ãªãã§ããããã
ããã®æç¹ã§ã¯ fore/background ãšããæŠå¿µã®äž»äœã¯é£œããŸã§ã
æäœãã人éã§ãã£ãŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çãªãã®ã ã£
ãããããªãããšæããŸãã
ããããã端æ«ãäž»äœã«æããå®çŸ©ãçŸãããšããã§éçŽèгçãªçš
æ³ã«ãªã£ãŠãã£ãããããªãã§ãããããã
>ãžã§ãã³ã³ãããŒã«ãå°å
¥ãããŠè©±ãè€éã«ãªã£ã¡ãããŸããã
>ã»ãã·ã§ã³ã°ã«ãŒããšã端æ«ã°ã«ãŒããšãããããããªæŠå¿µãå°å
¥ããªããš
>ãããªããªã£ãã
ãã©ãããŠããããè€éããèŠæã®äžã§ fore/background ãšãã
åç§°ãæ¢ããŠäœ¿ã£ããã§ããããïŒshell ããèŠãã&ãã®æç¡ãš
ããåŸæ¥ã®æŠå¿µãšã¯çŽè¡ããåç§°ãäœãèããã°è¯ãã£ãã®ã«ã
ããã®èŸºãã®å®è£
ã¯ãå®éã®ä»çµã¿ä»¥äžã«åç§°ã®ããã§å¿
èŠä»¥äžã«
ãããããå°è±¡ãäžããŠããŸã£ãŠãããããªæ°ãããŸãã
ïŒãjob control ã®é£ããã¯å¿è«åç§°ã ããããªããã©ã
--
ããã ããã
>>åœåã®UNIXã§ã¯
>>&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
>>nohupãã€&ã€ãã§èµ·åâããã¯ã°ã©ãŠã³ã
>>&ãªãã§èµ·åâãã©ã¢ã°ã©ãŠã³ã
>>daemonãâãæ£åŒçšèªãªããããã¯ã°ã©ãŠã³ããšåŒã¶ããšãããã
>>ã ã£ãã®ã§ã¯ãªãã§ããããã
æå
ã«ããæãå€ãããã¥ã¢ã«ã¯ V6 ãªã®ã§âåœåâã§ã¯ãªããããã
ãŸããããæ¢ã« daemon ãšããçšèªãåºãŠããŸãã
>ããã®æç¹ã§ã¯ fore/background ãšããæŠå¿µã®äž»äœã¯é£œããŸã§ã
>æäœãã人éã§ãã£ãŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çãªãã®ã ã£
>ãããããªãããšæããŸãã
>ããããã端æ«ãäž»äœã«æããå®çŸ©ãçŸãããšããã§éçŽèгçãªçš
>æ³ã«ãªã£ãŠãã£ãããããªãã§ãããããã
daemon ãš control terminalïŒv6 ã§ã¯ controle typewriterïŒé¢ä¿ã¯ã
æåããæ·±ããã®ã ã£ããšæããŸãã
v7 以åã¯çŸåšã®æå³ã® process group ã¯ãªããè€æ°ã®ããã»ã¹ã«ã·ã°
ãã«ãéãæ¹æ³ã¯åäžã® control terminalïŒ&& åäžã® UIDïŒãæã€ã
ãã»ã¹å
šéšã«éããããããŸããã§ããããã®ãããªã·ã°ãã«ãå®å¿ã
ãŠéããïŒ= daemon ãæ»ãªãªãïŒããã«ããã«ã¯ãcontrol terminal
ããåãé¢ããããªãã£ãããã§ãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> > ãbackground process ãå¶åŸ¡ç«¯æ«ãæã€ããšãããã
>
> åžžã«æã€æ°ãããŸãã
>
> SUSv3 ã«ããã°ã
ãã£ãããéãã§ããSUSv3 ã§ã®å®çŸ©ã¯ãç§ã«ããã£ããããŸãã
ç§ã®ïŒã€ã®èšäºã§ã®è©±ã®å±éæ¹æ³ã«ãããããã¯å€ã
ãäžæºããããããš
æããŸãããåºãäžè¬ã®æ¹ã念é ã«èšäºãæžãããšããããšããããŸãã®ã§ã
ããã¡ãªãã容ããŠãã£ãŠãã ãããä»åŸã¯æ¹åã«åªããŸãã
--
æž¡éå
å® http://katsu.watanabe.name
In article <KATE.02Au...@flash.tokyo.pfu.co.jp>,
KATAYAMA Yoshio <ka...@pfu.fujitsu.com> wrote:
>>ããã®æç¹ã§ã¯ fore/background ãšããæŠå¿µã®äž»äœã¯é£œããŸã§ã
>>æäœãã人éã§ãã£ãŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çãªãã®ã ã£
>>ãããããªãããšæããŸãã
>>ããããã端æ«ãäž»äœã«æããå®çŸ©ãçŸãããšããã§éçŽèгçãªçš
>>æ³ã«ãªã£ãŠãã£ãããããªãã§ãããããã
>
>daemon ãš control terminalïŒv6 ã§ã¯ controle typewriterïŒé¢ä¿ã¯ã
>æåããæ·±ããã®ã ã£ããšæããŸãã
ããïŒç§ã®æžããã®ã¯ãã端æ«ãäž»äœãšã㊠fore/background ãš
ããæŠå¿µãæã¯ç¡ãã£ãããšããæå³ã§ã®ãäž»äœãã§ãã£ãŠãé¢ä¿
ã®æç¡ãæ·±æµ
ã«ã¯èšåããŠããªããã§ããã
ããããšããã®æ·±ãé¢ä¿ãšããã®ã¯ã忝ãèæ¯ããšããæå³ã«æŒ
ããŠæ·±åºŠãæ·±ããšããæå³ã§ã®ãæ·±ãããªãã§ããïŒ
ãå°ãªããšããdaemon 以å€ã® process ã«é¢ããåœæã® fore/back-
ground ã®æŠå¿µã¯ãinteractive 㪠interface ããã® process ã
åŸ
ã£ãŠãããŠãããåŠããšããç¹ã«èµ·å ããŠããŠã端æ«ãšã®é¢ä¿ã
ãçããã®ã§ã¯ãªãããã«æããŸãã
ãdaemon 以å€ã® process ã«ãšã£ãŠã¯ãshell ã®å®è£
ã«ããçµæç
ã«ãçŽæç㪠fore/background ã®æŠå¿µãšç«¯æ«ãäž»äœãšãã fore/
background ã®æŠå¿µãäžèŽããã®ã§æ··ä¹±ã¯çããªãã£ããã©ãdaemon
ã«ãšã£ãŠã¯ç«¯æ«ãäž»äœãšã㊠fore/background ãèªããªãããã«ã
çŽæç㪠fore/background ã®æŠå¿µãšã®éã®ãããçããã®ã§ãªã
ããšãã話ã§ãã
>v7 以åã¯çŸåšã®æå³ã® process group ã¯ãªããè€æ°ã®ããã»ã¹ã«ã·ã°
>ãã«ãéãæ¹æ³ã¯åäžã® control terminalïŒ&& åäžã® UIDïŒãæã€ã
>ãã»ã¹å
šéšã«éããããããŸããã§ããããã®ãããªã·ã°ãã«ãå®å¿ã
>ãŠéããïŒ= daemon ãæ»ãªãªãïŒããã«ããã«ã¯ãcontrol terminal
>ããåãé¢ããããªãã£ãããã§ãã
ããããªãã§ããã©ãjob control ã®ååšããªãã£ãæä»£ã¯ init
ãçåã£ãŠãããã« zombie åããããšãå€ãã£ããšæããã§ããã
ãããã zombie ãšããŸããŸåã UID ãšç«¯æ«ã§ login ããå Žåã
ãã®ç«¯æ«ããæŽŸçãã process ãš zombie ãšã¯ã©ãåºå¥åºæ¥ãã
ã§ãããïŒ
ïŒãæè¿ã® UNIX ã ãšæ»
å€ã« zombie ãèŠãªãã®ã§ãªããªãæ€èšŒåº
ïŒæ¥ãŸããã
--
ããã ããã
> exit(2) ã« SIGHUP ã®èšè¿°ãåºãŠããã®ã¯ Sys III ããã§ãã
>
> ïŒ BSD ç³»ã¯ããã¥ã¢ã«ããªãã®ã§æªç¢ºèªã§ã(_ _)
BSD ç³»ã®ãœãŒã¹ãçºããŠã¿ãŸããã
ã«ãŒãã«ã®ãœãŒã¹ã¯çºãæ
£ããŠããªããã®ã§ããŸãèªä¿¡ããããŸããããã»ã
ã·ã§ã³ãªãŒããŒã® exit ã«äŒŽã foreground process group ãžã® SIGHUP ã®é
ä¿¡ãè¡ãªãã³ãŒã㯠Reno ã«ãããŸãããTahoe ã«ã¯èŠåœãããŸãããã€ãŸãã
å°å
¥ãããã®ã¯ããŸãå€ãããšã§ã¯ãªãããã§ãã
èããŠã¿ããš BSD ã§ã¯ job control ã¯æãã®ãåœããåãªããã§ãjob
control ã®ãªã shell ã®ããã®åŠçãå ãã䟡å€ã¯ããŸããªãã£ãã®ããã
ããŸããã
> ã«ãŒãã«ã®ãœãŒã¹ã¯çºãæ
£ããŠããªããã®ã§ããŸãèªä¿¡ããããŸããããã»ã
> ã·ã§ã³ãªãŒããŒã® exit ã«äŒŽã foreground process group ãžã® SIGHUP ã®é
> ä¿¡ãè¡ãªãã³ãŒã㯠Reno ã«ãããŸãããTahoe ã«ã¯èŠåœãããŸãããã€ãŸãã
> å°å
¥ãããã®ã¯ããŸãå€ãããšã§ã¯ãªãããã§ãã
sessionã®æŠå¿µãå°å
¥ãããã®ã¯ã4.4BSD pre-releaseçãªäœçœ®ä»ãã§ãã£ã
4.3BSD renoããã§ãã
--
ç¥æž éå / Takahiro Kambe
>>daemon ãš control terminalïŒv6 ã§ã¯ controle typewriterïŒé¢ä¿ã¯ã
>>æåããæ·±ããã®ã ã£ããšæããŸãã
>ããïŒç§ã®æžããã®ã¯ãã端æ«ãäž»äœãšã㊠fore/background ãš
>ããæŠå¿µãæã¯ç¡ãã£ãããšããæå³ã§ã®ãäž»äœãã§ãã£ãŠãé¢ä¿
>ã®æç¡ãæ·±æµ
ã«ã¯èšåããŠããªããã§ããã
ããã¯ã
>>>>daemonãâãæ£åŒçšèªãªããããã¯ã°ã©ãŠã³ããšåŒã¶ããšãããã
>>>>ã ã£ãã®ã§ã¯ãªãã§ããããã
>>>ããã®æç¹ã§ã¯ fore/background ãšããæŠå¿µã®äž»äœã¯é£œããŸã§ã
>>>æäœãã人éã§ãã£ãŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çãªãã®ã ã£
>>>ãããããªãããšæããŸãã
ã«å¯ŸããŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çã§ã¯ãªããšããæå³ã§ãã
>ãå°ãªããšããdaemon 以å€ã® process ã«é¢ããåœæã® fore/back-
>ground ã®æŠå¿µã¯ãinteractive 㪠interface ããã® process ã
>åŸ
ã£ãŠãããŠãããåŠããšããç¹ã«èµ·å ããŠããŠã端æ«ãšã®é¢ä¿ã
>ãçããã®ã§ã¯ãªãããã«æããŸãã
ç§ã®äž»åŒµã¯ãbackground ãš daemon ã®é¢ä¿ã«èšåãããªããcontrol
terminalïŒã®æç¡ïŒãéèŠã§ãããšããããšã§ãã
>daemon
>ã«ãšã£ãŠã¯ç«¯æ«ãäž»äœãšã㊠fore/background ãèªããªãããã«ã
>çŽæç㪠fore/background ã®æŠå¿µãšã®éã®ãããçããã®ã§ãªã
>ããšãã話ã§ãã
ãããããã®äž»åŒµãåãããªããªã£ãŠããŸãããdaemon ã«ã
fore/background ããããšãããšã§ããããã
>ããããªãã§ããã©ãjob control ã®ååšããªãã£ãæä»£ã¯ init
>ãçåã£ãŠãããã« zombie åããããšãå€ãã£ããšæããã§ããã
>ãããã zombie ãšããŸããŸåã UID ãšç«¯æ«ã§ login ããå Žåã
>ãã®ç«¯æ«ããæŽŸçãã process ãš zombie ãšã¯ã©ãåºå¥åºæ¥ãã
>ã§ãããïŒ
åºå¥ã§ããªãã£ãã®ã§ã¯ãªãããšæããŸããããããåºå¥ããå¿
èŠããª
ãã£ãã®ã§ã¯ãªãã§ããããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
In article <KATE.02Au...@flash.tokyo.pfu.co.jp>,
KATAYAMA Yoshio <ka...@pfu.fujitsu.com> wrote:
>>>>ããã®æç¹ã§ã¯ fore/background ãšããæŠå¿µã®äž»äœã¯é£œããŸã§ã
>>>>æäœãã人éã§ãã£ãŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çãªãã®ã ã£
>>>>ãããããªãããšæããŸãã
>
>ã«å¯ŸããŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çã§ã¯ãªããšããæå³ã§ãã
ããªãã»ã©ãã€ãŸãããfore/background ãšããæŠå¿µã®äž»äœã¯é£œã
端æ«ã§ãã£ãŠãæäœãã人éã«ãšã£ãŠã©ãã®ãšããã®ã¯å¯æ¬¡çãªã
ã®ã ã£ãããšäž»åŒµããããèš³ã§ããã
ãå
ãã人éãäž»äœãšããçŽæçæŠå¿µã§ã¯ãªã端æ«ãäž»äœãšãã圢
åŒçãªæŠå¿µã ã£ããšããããšã§ããããšãªããšããã®é 㯠process
ãšç«¯æ«ãšãã©ãããé¢ä¿ã«ãã£ãæã«ãbackgroundããšç§°ãããã§
ãããïŒ
>>daemon
>>ã«ãšã£ãŠã¯ç«¯æ«ãäž»äœãšã㊠fore/background ãèªããªãããã«ã
>>çŽæç㪠fore/background ã®æŠå¿µãšã®éã®ãããçããã®ã§ãªã
>>ããšãã話ã§ãã
>
>ãããããã®äž»åŒµãåãããªããªã£ãŠããŸãããdaemon ã«ã
>fore/background ããããšãããšã§ããããã
ãUNIX ã®å®è£
ã«æããã«çŽæçãªè§£éããããªãã°ãdaemon ã®å
åšããbackgroundããšèšã£ãŠãè¯ãã®ã§ã¯ãªãããšããã ãã®ããš
ã§ãã
ãããããçŽæçãªèŠæ¹ãšãå®éã® UNIX äžã§ã®åŒç§°ãšãåã£ãŠã
ãªãããšã誀解ã®å
ã«ãªã£ãŠããã®ã§ã¯ãªãã§ããããã
>>ããããªãã§ããã©ãjob control ã®ååšããªãã£ãæä»£ã¯ init
>>ãçåã£ãŠãããã« zombie åããããšãå€ãã£ããšæããã§ããã
>>ãããã zombie ãšããŸããŸåã UID ãšç«¯æ«ã§ login ããå Žåã
>>ãã®ç«¯æ«ããæŽŸçãã process ãš zombie ãšã¯ã©ãåºå¥åºæ¥ãã
>>ã§ãããïŒ
>
>åºå¥ã§ããªãã£ãã®ã§ã¯ãªãããšæããŸããããããåºå¥ããå¿
èŠããª
>ãã£ãã®ã§ã¯ãªãã§ããããã
ããšããããšã¯ãå process ã kill ããããšæå³ãããœãããª
ã®ã« zombie ãŸã§å«ã㊠kill ããŠããŸããšããå¯èœæ§ããã£ãã
ã§ãããããããã§å®éã« zombie ãæ»ã¬ãã©ããã¯å¥ãšããŠã
--
ããã ããã
æäœãã人ã¯, 端æ«ãéããŠè¡ãªãããã ãã, 端æ«ã
äž»äœã§ããããšäººéãäž»äœã§ããããš fore/background ã®
æŠå¿µã«ççŸãªãã§ãããïŒ
ãããš, çå±±ããã¯, foreground/backgournd ãšèšãæŠå¿µã¯
端æ«ãšå¯ã«çµã³ä»ããŠãããšããäºå®ãææããŠãã ãã§
äœãã䞻匵ããŠãããã«ã¯èŠããŸããã....
> ãå
ãã人éãäž»äœãšããçŽæçæŠå¿µã§ã¯ãªã端æ«ãäž»äœãšãã圢
> åŒçãªæŠå¿µã ã£ããšããããšã§ããã
ç§ã¯, ããã§åé¡ã«ãªã£ãŠãã UNIX ã® foreground/background
ååã®ä»ãæ¹ã¯ååçŽèгçã ãšæããŸã.
> ãUNIX ã®å®è£
ã«æããã«çŽæçãªè§£éããããªãã°ãdaemon ã®å
> åšããbackgroundããšèšã£ãŠãè¯ãã®ã§ã¯ãªãããšããã ãã®ããš
> ã§ãã
ããã¯ãŸã, ãããšã¯ããããã©,
ä»ãŸã§ UNIX ã®è©±ãããŠãããããªãã®ïŒ
> ãããããçŽæçãªèŠæ¹ãšãå®éã® UNIX äžã§ã®åŒç§°ãšãåã£ãŠã
> ãªãããšã誀解ã®å
ã«ãªã£ãŠããã®ã§ã¯ãªãã§ããããã
å€åããã§ããã. ã§ã誀解ããŠãã®ãããããã ãã ã.
> ããšããããšã¯ãå process ã kill ããããšæå³ãããœãããª
> ã®ã« zombie ãŸã§å«ã㊠kill ããŠããŸããšããå¯èœæ§ããã£ãã
> ã§ãããããããã§å®éã« zombie ãæ»ã¬ãã©ããã¯å¥ãšããŠã
ãããã zombie ã« signal éããªããšæãã®ã ãã©....
ããšãéãããšããŠãªã«ãå°ãããšãããã§ããããïŒ
ã¡ãã£ãšæãã€ããŸãã.
æšæ æ 䌞
>>ã«å¯ŸããŠã端æ«ãã©ãã®ãšããã®ã¯å¯æ¬¡çã§ã¯ãªããšããæå³ã§ãã
>ããªãã»ã©ãã€ãŸãããfore/background ãšããæŠå¿µã®äž»äœã¯é£œã
>端æ«ã§ãã£ãŠãæäœãã人éã«ãšã£ãŠã©ãã®ãšããã®ã¯å¯æ¬¡çãªã
>ã®ã ã£ãããšäž»åŒµããããèš³ã§ããã
ããã§ããdaemon ãš background ã®åºå¥ã«ã¯ãcontrol terminal ã®æ
ç¡ãéèŠãšããããšã§ãã
>ãå
ãã人éãäž»äœãšããçŽæçæŠå¿µã§ã¯ãªã端æ«ãäž»äœãšãã圢
>åŒçãªæŠå¿µã ã£ããšããããšã§ããããšãªããšããã®é 㯠process
>ãšç«¯æ«ãšãã©ãããé¢ä¿ã«ãã£ãæã«ãbackgroundããšç§°ãããã§
>ãããïŒ
daemon - control terminal ãæããªã
background - control terminal ãæã€ïŒãã€çµäºãåŸ
ã¡åãããŠãã
shell ãããªãïŒ
>ãUNIX ã®å®è£
ã«æããã«çŽæçãªè§£éããããªãã°ãdaemon ã®å
>åšããbackgroundããšèšã£ãŠãè¯ãã®ã§ã¯ãªãããšããã ãã®ããš
>ã§ãã
ã·ã¹ãã ã«ãã£ãŠã¯ãUnix ã® foregroundãbackgroundãdaemon ãã
foreground - TSS
background - ããããžã§ã
daemon - ã·ã¹ãã ã¿ã¹ã¯
ã«çžåœãããã®ããããŸããUnix ã«æããªããšããã®ã§ãããããã®
ãããªã·ã¹ãã ã§ãããããžã§ããšã·ã¹ãã ã¿ã¹ã¯ãåäžèŠãããããª
ãã®ã§ããããã¯åãå
¥ãé£ãè§£éã§ãã
>ãããããçŽæçãªèŠæ¹ãšãå®éã® UNIX äžã§ã®åŒç§°ãšãåã£ãŠã
>ãªãããšã誀解ã®å
ã«ãªã£ãŠããã®ã§ã¯ãªãã§ããããã
ãããããã® background(*) ã§ã¯ããããèŠæ¹ãçŽæçãªã®ãããã
ãŸãããããããäžäººã«åãå
¥ãããããšã¯éããªããšæããŸãã
ïŒ V7 ã®ããã¥ã¡ã³ãã§ background ã grep ãããããã£ã¡ã®æå³ã®
ïŒæ¹ãå€ãã£ã ;-p
>>åºå¥ã§ããªãã£ãã®ã§ã¯ãªãããšæããŸããããããåºå¥ããå¿
èŠããª
>>ãã£ãã®ã§ã¯ãªãã§ããããã
>ããšããããšã¯ãå process ã kill ããããšæå³ãããœãããª
>ã®ã« zombie ãŸã§å«ã㊠kill ããŠããŸããšããå¯èœæ§ããã£ãã
>ã§ãããããããã§å®éã« zombie ãæ»ã¬ãã©ããã¯å¥ãšããŠã
zombie ã¯æ¢ã«çµäºããããã»ã¹ãªã®ã§ãã·ã°ãã«ãéãããšèªäœãã§
ããªãã£ãã¯ãã§ãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
In article <ako6m7$ql3$1...@nsvn01.zaq.ne.jp>, shi...@nintendo.co.jp (Takashi SHIRAI) writes
>ããªãã»ã©ãã€ãŸãããfore/background ãšããæŠå¿µã®äž»äœã¯é£œã
>端æ«ã§ãã£ãŠãæäœãã人éã«ãšã£ãŠã©ãã®ãšããã®ã¯å¯æ¬¡çãªã
>ã®ã ã£ãããšäž»åŒµããããèš³ã§ããã
ãªããææ¥ã§ãMac OS XãšãX-Window ãšãã䜿ããªããã^Z ãšã
fg, bg ãæããŠããã®ãåŸãããèŠãŠããŠãããªãããæä»£é
ã
ãªæãããã...ããšæã£ãŠããããšãæãåºããŸã..
ãã¯ãã^z ãªããŠå¿
èŠãªããã ãã©... ãããªãå¥Window
ãéãæ¹ãå®çšçããª?
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
æ²³éçæ²» @ çç倧åŠå·¥åŠéšæ
å ±å·¥åŠç§,
ç§åŠæè¡æ¯èäºæ¥å£ããããç ç©¶21(æ©èœãšæ§æ)
ko...@ie.u-ryukyu.ac.jpãã:
> ãã¯ãã^z ãªããŠå¿
èŠãªããã ãã©... ãããªãå¥Window
> ãéãæ¹ãå®çšçããª?
ããããsuspendãããããšã¯ãããŸããããä»ãã®å
ãŸã§åŠçãé²
ããšå°ããªãããšæã£ãã^Zãäžçªç°¡åã
psããŠkill -STOPããŠããããã© ä¹
é
In article <akv5f1$1m...@utogw.gssm.otsuka.tsukuba.ac.jp>, ku...@gssm.otsuka.tsukuba.ac.jp writes
> ããããsuspendãããããšã¯ãããŸããããä»ãã®å
ãŸã§åŠçãé²
>ããšå°ããªãããšæã£ãã^Zãäžçªç°¡åã
ã§ããããã衚瀺ãã§ãŠããŠããªããªãæ¢ãŸããªãã£ãããããã§
ãããïœ
ãããªããšããã€ã€ãæãåæã«^zããŠãããã ããªïœ
äžã€ã¯ãOS Xã«ãã€ã£ãŠãããŒããŒãã§ã¿ãŒããã«ãåãæ¿ããã
ãªããããªãã ã...
Takashi SHIRAI wrote:
> ããšããããšã¯ãå process ã kill ããããšæå³ãããœãããª
> ã®ã« zombie ãŸã§å«ã㊠kill ããŠããŸããšããå¯èœæ§ããã£ãã
> ã§ãããããããã§å®éã« zombie ãæ»ã¬ãã©ããã¯å¥ãšããŠã
zombieãšã¯ãããã»ã¹ã®exitããåŸã®å§¿ã§ããŸã waitããŠããã£ãŠãªãã®ã§ã
ããã»ã¹ããŒãã«ãšã³ããªãæ®ã£ãŠãããã®ã§ãã
zombieèªèº«ã«ã·ã°ãã«ãéã£ãŠããã®çµæã§zombieãå±
ãªããªãããšã¯ãªããšæããŸã
ãã
éœè€æçŽãsai...@ics.es.osaka-u.ac.jp
> ç§ã®ïŒã€ã®èšäºã§ã®è©±ã®å±éæ¹æ³ã«ãããããã¯å€ã ãäžæºããããããš
ïŒåç®ã§ïŒãããŸã§ã®è©±ã®æµãããåããæãã§ãä»ã«ããŠæãã° ...
å
ã
ã®ãããããã®èšäºã§ã¯ããbackground process ã¯ç«¯æ«ããããªãã
ãšæžããŠãã£ãŠããå¶åŸ¡ç«¯æ«ãæããªãããšã¯æžããŠãªãã£ãã®ã§ã
äŸãã°ãããããããã®èšäºã§ã®ã端æ«ããããªãããšã¯ããã®ç«¯æ«
ããã®å
¥åãåãä»ããªãããªã©ãšè¡šçŸããæ¹ãã誀解ããã«ãããš
æããŸããUnix çã«ã¯ background process ãå¶åŸ¡ç«¯æ«ã¯æã£ãŠããã®ã§ãã
ãªã©ãšæã眮ããŠå¶åŸ¡ç«¯æ«ã®è©±ã«ç§»ãã°ããããããããããªãã£ãã
ãããªæ°ã¯ããŸãã:-)
è°è«ã®éäžã§åºã OS äžè¬ã§ã®çšèªããããã¯ãå³å¯ã§ã¯ãªãããç¥ã
ãªãããããèŠæããäœ¿ãæ¹ãã§ã® background ã«ã€ããŠããäŸãã°ã
http://www.dictionary.com/ ã§ background ïŒããã㯠foregroundïŒãæ€çŽ¢ããŠã
jargon ãšããŠã®çšæ³ãèŠãã°åºãŠããã®ã§ãããå°ããšããšããããªã
èšèã§è°è«ãé²ãã§ãããã£ãããã«æããŸãã
ããšãdaemon ãšããçšèªãåã URL ã§æ€çŽ¢ããŠåºãŠããå®çŸ©ãèŠãŠæã£ã
ã®ã§ãããdaemon ãšããèšèã¯ãèµ·æºãšããŠã¯ãåãæ¹ãã«æ³šç®ããŠããŠ
端æ«ãšåãé¢ããã©ãããšããå®è£
ææ®µã®èгç¹ããå®çŸ©ãããçšèªã§ã¯
ãªãã®ã§ãå¶åŸ¡ç«¯æ«ãšã®é¢ä¿ã§ã® background process ãã©ããããšããåé¡
ã®ç«ãŠæ¹èªäœãå¿
ãããããã¡ããšå²ããããçãããããšã¯èšããªããš
ããæããããŸãã
äŸãã° pagedaemon ãªã©ãããããã kernel process ãšããŠå®è£
ãããŠããå Žåã
ã端æ«ãšã®é¢ä¿ããè°è«ããã®ã¯ mismatch ãªæãã§ããããjargon ãšããŠã®
æå³ã§ã® background ã§åããŠããäœãããšæããäºã«ã¯ãç¹ã«éåæã¯æã
ãŸããã
--
æ©æ¬ å