当需要中断一个前台进程的时候,通常是使用< Ctrl+c >组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。
kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。
kill命令的语法格式很简单,大致有以下两种方式:
kill [-s 信号 | -p ] [ -a ] 进程号 ...
kill -l [信号]
-s 指定需要送出的信号。既可以是信号名也可以对应数字。
-p 指定kill命令只是显示进程的pid,并不真正送出结束信号。
-l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。
kill命令的使用
下面看看该命令的使用。
[例24] 在执行一条find指令时由于时间过长,决定终止该进程。
首先应该使用ps命令来查看该进程对应的PID,键入ps,显示如下:
PID TTY TIME COMMAND
285 1 00:00:00 -bash
287 3 00:00:00 -bash
289 5 00:00:00 /sbin/mingetty tty5
290 6 00:00:00 /sbin/mingetty tty6
312 3 00:00:00 telnet bbs3
341 4 00:00:00 /sbin/mingetty tty4
345 1 00:00:00 find / -name foxy.jpg
348 1 00:00:00 ps
可以看到该进程对应的PID是345,现在使用kill命令来终止该进程。键入:
# kill 345
再用ps命令查看,就可以看到,find进程已经被杀掉了。
[例25] 杀掉进程11721
# ps PID TTY TIME COMMAND
11668 p1 00:00:00 -tcsh
11721 p1 00:00:00 cat
11737 p1 00:00:00 ps
# kill 11721
[1] Terminated cat
#
有时候可能会遇到这样的情况,某个进程已经挂死或闲置,使用kill命令却杀不掉。这时候就必须发送信号9,强行关闭此进程。当然这种“野蛮”的方法很可能会导致打开的文件出现错误或者数据丢失之类的错误。所以不到万不得已不要使用强制结束的办法。如果连信号9都不响应,那恐怕就只有重新启动计算机了。
控制多个进程命令
Linux可使用户同时运行多个进程,还允许用户或系统管理员能控制正在运行的进程。
nohup命令
理论上,我们一般退出Linux系统时,会把所有的程序全部结束掉,包括那些后台程序。但有时候,例如您正在编辑一个很长的程序,但是您下班或是有事需要先退出系统,这时您又不希望系统把您编辑那么久的程序结束掉,希望退出系统时,程序还能继续执行。这时,我们就可以使用nohup命令使进程在用户退出后仍继续执行。
一般这些进程我们都是让它在后台执行,结果则会写到用户自己的目录下的nohup.out这个文件里(也可以使用输出重定向,让它输出到一个特定的文件)。
[例26] $ nohup sort sales.dat &
这条命令告诉sort命令忽略用户已退出系统,它应该一直运行,直到进程完成。利用这种方法,可以启动一个要运行几天甚至几周的进程,而且在它运行时,用户不需要去登录。
nohup命令把一条命令的所有输出和错误信息送到nohup.out文件中。若将输出重定向,则只有错误信息放在nohup.out文件中。
renice命令
renice命令允许用户修改一个正在运行进程的优先权。 利用renice命令可以在命令执行时调整其优先权。其格式如下:
$ renice -number PID
其中,参数number与nice命令的number意义相同。
注:
(1) 用户只能对自己所有的进程使用renice命令。
(2) root用户可以在任何进程上使用renice命令。
(3) 只有root用户才能提高进程的优先权
分享到:
相关推荐
Linux kill 命令参数及用法详解 Linux kill 命令是 Linux 操作系统中一个非常重要的命令,用于中止一个进程。该命令可以将指定的信息送至程序,预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,...
kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的。我们来看一下 man page 对它的解释:kill – send a signal to a process. 从官方的解释不难看出,kill 是向进程发送信号的命令。当然...
Linux kill 命令参数及用法详解 Linux kill 命令是 Linux 系统中一个非常重要的命令,它用于删除执行中的程序或工作。下面是对 Linux kill 命令的详细解释。 功能说明 Linux kill 命令的主要功能是删除执行中的...
《Linux命令详解手册》是一份全面的Linux命令参考资料,它详细介绍了Linux系统中广泛使用的一系列命令,覆盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面。为了方便用户查阅,该手册按照命令的功能进行了...
Linux命令详解手册是一份关于Linux操作系统下各种命令的权威指南,涵盖了系统管理、系统设置、文档编辑和压缩备份等众多方面的命令。这份手册详细列举并解释了每个命令的用途和使用方法,是Linux用户管理和维护系统...
Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...
通过深入学习《Linux命令详解词典》,读者不仅能理解每个命令的功能,还能学会如何组合使用它们以完成更复杂的任务,提升在Linux环境下的工作效率。无论是初学者还是经验丰富的系统管理员,都能从中受益。
《Linux命令详解词典(绝版)》作为施威铭研究室所著的一本经典Linux工具书,主要针对Linux操作系统中的各种命令进行了深入的解释和阐述。Linux作为一种自由和开放源代码的类Unix操作系统,广泛应用于服务器、桌面、...
《Linux命令详解词典》是由施威铭研究室编著的一本详尽解析Linux命令的参考书籍,旨在帮助用户深入理解和掌握Linux操作系统中的各种命令。这本书以扫描版的形式提供,包含PDF格式,方便读者在线阅读或下载。标签...
"Linux编程命令详解"这本书深入浅出地介绍了Linux系统中的常用命令,是程序员进阶必备的参考资料。以下是根据标题、描述以及标签提炼出的一些关键知识点: 1. **Linux基础**:Linux是一种类Unix操作系统,它基于...
Linux kill命令 Linux kill命令用于删除执行中的程序或工作。 kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的...
Linux系统命令是运维人员在日常工作中必不可少的工具,它们用于管理和维护Linux系统、自动化任务、监控系统状态等众多任务。从给定的文件内容来看,文件提到了许多常用的Linux命令,并且每个命令都有其特定的用途和...
Linux常用命令详解 Linux 操作系统提供了许多实用的命令来帮助用户管理和维护系统。下面是 Linux 中的一些常用命令的详解: 文件管理命令 1. ls 命令 ls 命令是 Linux 中最常用的命令之一,用于显示当前目录下的...
内容概要:本文详细讲解了在 Linux环境中...其他说明:本文档旨在帮助技术人员更好地理解和运用 Linux系统下各类进程管理命令,以提高工作效率,优化系统性能。实际应用过程中应谨慎操作,尤其是涉及 kill指令的执行。
Linux进程管理命令详解 Linux进程管理命令详解是Linux操作系统中的一种重要概念。Linux系统可以同时启动多个进程,Linux进程管理命令是管理这些进程的命令。这些命令包括at、bg、&、fg、kill、crontab、jobs、ps、...
掌握Linux系统操作命令是进行有效管理和维护系统的关键。本文将深入解析一系列基础及高级的Linux命令,帮助你快速入门并逐步提升到精通水平。 1. **用户系统相关命令**: - `su` 和 `sudo` 用于切换用户,`sudo -i...
本书“Linux编程命令详解”旨在帮助读者深入理解和掌握Linux环境下的编程与命令行操作,这对于提升工作效率和进行系统级别的调试至关重要。 在Linux中,命令行界面(CLI)是与操作系统交互的主要方式之一,它提供了...