📄 ch38_12.htm
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 38] 38.12 Killing All Your Processes </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly & Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly & Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:49:51Z"><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_11.htm"TITLE="38.11 Printer Queue Watcher: A Restartable Daemon Shell Script"><LINKREL="next"HREF="ch38_13.htm"TITLE="38.13 Interactively Kill Processes Matching a Pattern "></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_11.htm"TITLE="38.11 Printer Queue Watcher: A Restartable Daemon Shell Script"><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 38.11 Printer Queue Watcher: A Restartable Daemon Shell Script"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_13.htm"TITLE="38.13 Interactively Kill Processes Matching a Pattern "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 38.13 Interactively Kill Processes Matching a Pattern "BORDER="0"></A></TD></TR></TABLE> <HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-0401">38.12 Killing All Your Processes </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-43144"></A><ACLASS="indexterm"NAME="AUTOID-43147"></A>On many UNIX systems,<SPANCLASS="link"><EMCLASS="emphasis">kill</EM> (<ACLASS="linkend"HREF="ch38_10.htm"TITLE="Destroying Processes with kill ">38.10</A>)</SPAN>interprets the special "process ID"-1 as a command to signal all your processes (all processes with youruser ID), <EMCLASS="emphasis">except</EM> for the process sending the signal. So, forexample, the command:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>kill -TERM -1</B></CODE></PRE></BLOCKQUOTE></P><PCLASS="para">will terminate all your processes.[5]To see if your system supports this feature, type<SPANCLASS="link"><CODECLASS="literal">man 2 kill</CODE> (<ACLASS="linkend"HREF="ch50_01.htm#UPT-ART-4910"TITLE="UNIX Online Documentation ">50.1</A>)</SPAN>to read the <EMCLASS="emphasis">kill</EM>(2) manual page.</P><BLOCKQUOTECLASS="footnote"><PCLASS="para">[5] Signal 15 is <EMCLASS="emphasis">SIGTERM</EM>, which is the signal <EMCLASS="emphasis">kill</EM> sends bydefault. In this command, you need to specify it explicitly, forobvious syntactic reasons.</P></BLOCKQUOTE><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-43165"></A>You can use this to preventbackground jobs from continuing after you logout; just stick <CODECLASS="literal">kill -TERM -1</CODE> into your <EMCLASS="emphasis">.logout</EM> file.There are some good reasons <EMCLASS="emphasis">not</EM> to do this though: if you use several terminals, this will kill <EMCLASS="emphasis">all</EM> your processes whenyou log out from <EMCLASS="emphasis">any</EM> terminal.</P><PCLASS="para">This command is also useful in desperate situations. If processes arespawning out of control, or if your terminal is locked, you can log infrom another terminal and kill everything, without having to digthrough<SPANCLASS="link"><EMCLASS="emphasis">ps</EM> (<ACLASS="linkend"HREF="ch38_05.htm"TITLE="The ps Command ">38.5</A>)</SPAN>to find the right process.[The<SPANCLASS="link"><EMCLASS="emphasis">zap</EM> (<ACLASS="linkend"HREF="ch38_13.htm"TITLE="Interactively Kill Processes Matching a Pattern ">38.13</A>)</SPAN>script searches process lists and kills processes automatically. -<EMCLASS="emphasis">JP</EM> ]</P><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-43180"></A><ACLASS="indexterm"NAME="AUTOID-43182"></A>The special -1 process ID is defined differently for the superuser; ifyou're root, it means "all processes <EMCLASS="emphasis">except</EM> system processes."</P><PCLASS="para">If you can't use the -1 process ID, and you use the Bourne shellor another shell without job control, you can use a 0 (zero) process ID.That sends the signal to all members of the process group (that is,processes resulting from the current login).A 0 doesn't work on shells, like the C shell, that have<SPANCLASS="link">job control (<ACLASS="linkend"HREF="ch12_01.htm#UPT-ART-0439"TITLE="Job Control: Work Faster, Stop Runaway Jobs ">12.1</A>)</SPAN>.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">ML</SPAN>, <SPANCLASS="authorinitials">JP</SPAN>, <SPANCLASS="authorinitials">JIK</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_11.htm"TITLE="38.11 Printer Queue Watcher: A Restartable Daemon Shell Script"><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 38.11 Printer Queue Watcher: A Restartable Daemon Shell Script"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_13.htm"TITLE="38.13 Interactively Kill Processes Matching a Pattern "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 38.13 Interactively Kill Processes Matching a Pattern "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">38.11 Printer Queue Watcher: A Restartable Daemon Shell Script</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.13 Interactively Kill Processes Matching a Pattern </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 & 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 + -