⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch38_09.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 38] 38.9 Killing Foreground Jobs </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly &amp; Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly &amp; Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:49:44Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="ch38_01.htm"TITLE="38. Starting, Stopping, and Killing Processes"><LINKREL="prev"HREF="ch38_08.htm"TITLE="38.8 What Are Signals? "><LINKREL="next"HREF="ch38_10.htm"TITLE="38.10 Destroying Processes with kill "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch38_08.htm"TITLE="38.8 What Are Signals? "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 38.8 What Are Signals? "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 38<BR>Starting, Stopping, and Killing Processes</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch38_10.htm"TITLE="38.10 Destroying Processes with kill "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 38.10 Destroying Processes with kill "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-6710">38.9 Killing Foreground Jobs </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-42963"></A><ACLASS="indexterm"NAME="AUTOID-42966"></A><ACLASS="indexterm"NAME="AUTOID-42969"></A><ACLASS="indexterm"NAME="AUTOID-42972"></A><ACLASS="indexterm"NAME="AUTOID-42974"></A><ACLASS="indexterm"NAME="AUTOID-42976"></A><ACLASS="indexterm"NAME="AUTOID-42978"></A><ACLASS="indexterm"NAME="AUTOID-42980"></A><ACLASS="indexterm"NAME="AUTOID-42983"></A>You probably know that typing<SPANCLASS="link">CTRL-c (<ACLASS="linkend"HREF="ch38_08.htm"TITLE="What Are Signals? ">38.8</A>)</SPAN>will terminate yourforeground job. But what actually happens when you type CTRL-c?</P><PCLASS="para">When you type CTRL-c, you're sending the<SPANCLASS="link">INT (interrupt) signal (<ACLASS="linkend"HREF="ch38_08.htm"TITLE="What Are Signals? ">38.8</A>)</SPAN>to the foreground process. Most well-designed programs &quot;catch&quot; theinterrupt signal&nbsp;- which means that the program installs some specialfunction (a &quot;signal handler&quot;) that is called whenever a signalarrives. The signal handler normally closes all open files, resetsyour terminal properly (if needed), and does anything else necessaryso that the program can depart from this world at peace. Then theprogram terminates.The QUIT signal, sent by CTRL-<CODECLASS="literal">\</CODE>, works similarly but alsomakes a<SPANCLASS="link"><EMCLASS="emphasis">core</EM> file (<ACLASS="linkend"HREF="glossary.htm#UPT-ART-1010"TITLE="Glossary">52.9</A>)</SPAN>for debugging.</P><PCLASS="para">Of course, it's possible for the signal handler to do somethingelse entirely: it's possible for the program to decide not to quit, orto implement some truly bizarre feature. In fact, editors like<EMCLASS="emphasis">vi</EM> or Emacs almost always ignore most signals.The<SPANCLASS="link"><EMCLASS="emphasis">trap</EM> (<ACLASS="linkend"HREF="ch44_12.htm"TITLE="Trapping Exits Caused by Interrupts ">44.12</A>)</SPAN>command handles signals in the Bourne shell.</P><PCLASS="para">Whenever you send a signal from the keyboard, it's sent to allprocesses in the same<SPANCLASS="link">process group (<ACLASS="linkend"HREF="ch38_03.htm"TITLE="Managing Processes: Overall Concepts ">38.3</A>)</SPAN>.This may include the program'schild processes, but may not. And, of course, child processes canchoose to ignore signals on their own. But more often than not,killing the parent process kills its children.</P><PCLASS="para">Article<ACLASS="xref"HREF="ch05_09.htm"TITLE="Setting Your Erase, Kill, and Interrupt Characters ">5.9</A>explains how to set the key that sends these and other signals.The<SPANCLASS="link"><EMCLASS="emphasis">kill</EM> (<ACLASS="linkend"HREF="ch38_10.htm"TITLE="Destroying Processes with kill ">38.10</A>)</SPAN>command also sends signals.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">ML</SPAN>, <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch38_08.htm"TITLE="38.8 What Are Signals? "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 38.8 What Are Signals? "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch38_10.htm"TITLE="38.10 Destroying Processes with kill "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 38.10 Destroying Processes with kill "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">38.8 What Are Signals? </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">38.10 Destroying Processes with kill </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed &amp; awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -