diff options
Diffstat (limited to 'slackbook/html/process-control-kill.html')
-rw-r--r-- | slackbook/html/process-control-kill.html | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/slackbook/html/process-control-kill.html b/slackbook/html/process-control-kill.html new file mode 100644 index 00000000..32292651 --- /dev/null +++ b/slackbook/html/process-control-kill.html @@ -0,0 +1,182 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta name="generator" content="HTML Tidy, see www.w3.org" /> +<title>kill</title> +<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /> +<link rel="HOME" title="Slackware Linux Essentials" href="index.html" /> +<link rel="UP" title="Process Control" href="process-control.html" /> +<link rel="PREVIOUS" title="ps" href="process-control-ps.html" /> +<link rel="NEXT" title="top" href="process-control-top.html" /> +<link rel="STYLESHEET" type="text/css" href="docbook.css" /> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +</head> +<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084" +alink="#0000FF"> +<div class="NAVHEADER"> +<table summary="Header navigation table" width="100%" border="0" cellpadding="0" +cellspacing="0"> +<tr> +<th colspan="3" align="center">Slackware Linux Essentials</th> +</tr> + +<tr> +<td width="10%" align="left" valign="bottom"><a href="process-control-ps.html" +accesskey="P">Prev</a></td> +<td width="80%" align="center" valign="bottom">Chapter 11 Process Control</td> +<td width="10%" align="right" valign="bottom"><a href="process-control-top.html" +accesskey="N">Next</a></td> +</tr> +</table> + +<hr align="LEFT" width="100%" /> +</div> + +<div class="SECT1"> +<h1 class="SECT1"><a id="PROCESS-CONTROL-KILL" name="PROCESS-CONTROL-KILL">11.4 <tt +class="COMMAND">kill</tt></a></h1> + +<p>On occasion, programs misbehave and you'll need to put them back in line. The program +for this kind of administration is called <tt class="COMMAND">kill</tt>(1), and it can be +used for manipulating processes in several ways. The most obvious use of <tt +class="COMMAND">kill</tt> is to kill off a process. You'll need to do this if a program +has run away and is using up lots of system resources, or if you're just sick of it +running.</p> + +<p>In order to kill off a process, you'll need to know its PID or its name. To get the +PID, use the <tt class="COMMAND">ps</tt> command as was discussed in the last section. +For example, to kill off process 4747, you'd issue the following:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">%</samp> <kbd class="USERINPUT">kill 4747</kbd> +</pre> +</td> +</tr> +</table> + +<p>Note that you'll have to be the owner of the process in order to kill it. This is a +security feature. If you were allowed to kill off processes started by other users, it +would be possible to do all sorts of malicious things. Of course, <tt +class="USERNAME">root</tt> can kill off any process on the system.</p> + +<p>There's another variety of the <tt class="COMMAND">kill</tt> command called <tt +class="COMMAND">killall</tt>(1). This program does exactly what it says: it kills all the +running processes that have a certain name. If you wanted to kill off all the running <tt +class="COMMAND">vim</tt> processes, you could type the following command:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">%</samp> <kbd class="USERINPUT">killall vim</kbd> +</pre> +</td> +</tr> +</table> + +<p>Any and all <tt class="COMMAND">vim</tt> processes you have running will die off. +Doing this as <tt class="USERNAME">root</tt> would kill off all the <tt +class="COMMAND">vim</tt> processes running for all users. This brings up an interesting +way to kick everyone (including yourself) off the system:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">#</samp> <kbd class="USERINPUT">killall bash</kbd> +</pre> +</td> +</tr> +</table> + +<p>Sometimes a regular kill doesn't get the job done. Certain processes will not die with +a kill. You'll need to use a more potent form. If that pesky PID 4747 wasn't responding +to your kill request, you could do the following:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">%</samp> <kbd class="USERINPUT">kill -9 4747</kbd> +</pre> +</td> +</tr> +</table> + +<p>That will almost certainly cause process 4747 to die. You can do the same thing with +<tt class="COMMAND">killall</tt>. What this is doing is sending a different signal to the +process. A regular <tt class="COMMAND">kill</tt> sends a <var +class="LITERAL">SIGTERM</var> (terminate) signal to the process, which tells it to finish +what it's doing, clean up, and exit. <tt class="COMMAND">kill -9</tt> sends a <var +class="LITERAL">SIGKILL</var> (kill) signal to the process, which essentially drops it. +The process is not allowed to clean-up, and sometimes bad things like data corruption +could occur by killing something with a <var class="LITERAL">SIGKILL</var>. There's a +whole list of signals at your disposal. You can get a listing of signals by typing the +following:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">%</samp> <kbd class="USERINPUT">kill -l</kbd> + 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL + 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE + 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 + 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD + 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN + 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ + 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO + 30) SIGPWR +</pre> +</td> +</tr> +</table> + +<p>The number must be used for <tt class="COMMAND">kill</tt>, while the name minus the +leading “SIG” can be used with <tt class="COMMAND">killall</tt>. Here's +another example:</p> + +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<td> +<pre class="SCREEN"> +<samp class="PROMPT">%</samp> <kbd class="USERINPUT">killall -KILL vim</kbd> +</pre> +</td> +</tr> +</table> + +<p>A final use of <tt class="COMMAND">kill</tt> is to restart a process. Sending a <var +class="LITERAL">SIGHUP</var> will cause most processes to re-read their configuration +files. This is especially helpful for telling system processes to re-read their config +files after editing.</p> +</div> + +<div class="NAVFOOTER"> +<hr align="LEFT" width="100%" /> +<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" +cellspacing="0"> +<tr> +<td width="33%" align="left" valign="top"><a href="process-control-ps.html" +accesskey="P">Prev</a></td> +<td width="34%" align="center" valign="top"><a href="index.html" +accesskey="H">Home</a></td> +<td width="33%" align="right" valign="top"><a href="process-control-top.html" +accesskey="N">Next</a></td> +</tr> + +<tr> +<td width="33%" align="left" valign="top"><tt class="COMMAND">ps</tt></td> +<td width="34%" align="center" valign="top"><a href="process-control.html" +accesskey="U">Up</a></td> +<td width="33%" align="right" valign="top"><tt class="COMMAND">top</tt></td> +</tr> +</table> +</div> +</body> +</html> + |