谁能解释一下kill和kill-9的区别?先谢谢你。
mnemlml81#
kill又名kill -TERM又名kill -15是终止进程的安全和正确的方法。这相当于安全地关闭计算机。kill -9是一种不安全的方式,它残忍地谋杀了一个进程。这相当于拉电源线,并可能导致数据损坏。有关详细信息,请参阅the Linux&Unix stack exchange。
kill
kill -TERM
kill -15
kill -9
mm9b1k5b2#
Kill和Kill -9都用来终止一个进程。但是区别在于收到Kill或Kill -9的进程的行为。Kill将生成一个SIGTERM信号,要求进程优雅地杀死自己,即释放内存或照顾其他子进程。使用kill杀死一个进程不会有任何副作用,比如未释放的内存,因为它被优雅地杀死了。Kill-9的工作原理类似,但它不会等待程序优雅地死亡。Kill-9生成一个SIGKILL信号,该信号不会检查进程的状态,并立即终止该进程。
在编码/编程环境中
SIGTERM(由Kill生成)可以在代码级捕获和处理,如果进程仍要达到安全状态(清除内存或类似活动),并且进程可能不会立即被杀死,需要一些时间来清除资源然后死亡。而进程不能忽略SIGKILL(由Kill -9生成),并且无论它们处于什么状态都会立即被杀死(这可能会导致一些问题,但进程肯定会被杀死)。事实上,进程甚至不知道SIGKILL信号,因为信号直接进入内核init。此时,init将停止该进程。这个过程永远没有机会捕捉到信号并采取行动。
cyvaqqii3#
kill是一个实用程序,用于向一个或多个进程发送不同的信号(通常用于终止,暂停,继续等)。- 操纵过程)。当执行kill而没有任何信号编号(有时称为信号代码)时,将使用默认信号编号15,这相当于SIGTERM信号名称。另一个信号号是9,相当于SIGKILL信号名。kill -15 PID(与kill PID相同)和kill -9 PID之间的区别在于,第一次优雅地关闭指定的进程,第二次强制关闭该进程及其所有子进程。一般来说,要杀死特定的进程,可以使用kill,有四种方式:
15
SIGTERM
9
SIGKILL
kill -15 PID
kill PID
kill -9 PID
kill -signalnumber PID
kill -s signalnumber PID
kill -SIGNALNAME PID
kill -s SIGNALNAME PID
3条答案
按热度按时间mnemlml81#
kill
又名kill -TERM
又名kill -15
是终止进程的安全和正确的方法。这相当于安全地关闭计算机。kill -9
是一种不安全的方式,它残忍地谋杀了一个进程。这相当于拉电源线,并可能导致数据损坏。有关详细信息,请参阅the Linux&Unix stack exchange。
mm9b1k5b2#
Kill和Kill -9都用来终止一个进程。但是区别在于收到Kill或Kill -9的进程的行为。
Kill将生成一个SIGTERM信号,要求进程优雅地杀死自己,即释放内存或照顾其他子进程。使用kill杀死一个进程不会有任何副作用,比如未释放的内存,因为它被优雅地杀死了。
Kill-9的工作原理类似,但它不会等待程序优雅地死亡。Kill-9生成一个SIGKILL信号,该信号不会检查进程的状态,并立即终止该进程。
在编码/编程环境中
SIGTERM(由Kill生成)可以在代码级捕获和处理,如果进程仍要达到安全状态(清除内存或类似活动),并且进程可能不会立即被杀死,需要一些时间来清除资源然后死亡。而进程不能忽略SIGKILL(由Kill -9生成),并且无论它们处于什么状态都会立即被杀死(这可能会导致一些问题,但进程肯定会被杀死)。事实上,进程甚至不知道SIGKILL信号,因为信号直接进入内核init。此时,init将停止该进程。这个过程永远没有机会捕捉到信号并采取行动。
cyvaqqii3#
kill
是一个实用程序,用于向一个或多个进程发送不同的信号(通常用于终止,暂停,继续等)。- 操纵过程)。当执行
kill
而没有任何信号编号(有时称为信号代码)时,将使用默认信号编号15
,这相当于SIGTERM
信号名称。另一个信号号是
9
,相当于SIGKILL
信号名。kill -15 PID
(与kill PID
相同)和kill -9 PID
之间的区别在于,第一次优雅地关闭指定的进程,第二次强制关闭该进程及其所有子进程。一般来说,要杀死特定的进程,可以使用
kill
,有四种方式:kill -signalnumber PID
个kill -s signalnumber PID
kill -SIGNALNAME PID
kill -s SIGNALNAME PID