如果你负责运行Linux系统,有时候可能需要管理Linux服务。那样的话你就必须得知道如何采用服务命令开启与暂停服务,以及如何关闭服务或进程。 你可能发现Linux服务或进程变得毫无反应——在运行但不正常工作,通过常用方式还不能退出。可能需要发送一个信号终止进程。
有几种不同Linux信号让管理员通过终止命令发送给进程。Linux内核定义至少不少于32个信号,最常见的是SIGTERM、SIGHUP与SIGKILL。 终止进程不意味着真正KO它。那么在发送这些信号时真的会出现什么呢? 基本上,Linux管理员有两种方式发送命令给进程:从相关的程序本身以及从内核空间。
从相关程序出发比较好。这与微软……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
如果你负责运行Linux系统,有时候可能需要管理Linux服务。那样的话你就必须得知道如何采用服务命令开启与暂停服务,以及如何关闭服务或进程。
你可能发现Linux服务或进程变得毫无反应——在运行但不正常工作,通过常用方式还不能退出。可能需要发送一个信号终止进程。
有几种不同Linux信号让管理员通过终止命令发送给进程。Linux内核定义至少不少于32个信号,最常见的是SIGTERM、SIGHUP与SIGKILL。
终止进程不意味着真正KO它。那么在发送这些信号时真的会出现什么呢?
基本上,Linux管理员有两种方式发送命令给进程:从相关的程序本身以及从内核空间。从相关程序出发比较好。这与微软Windows类似。在启动Task Manager强制退出程序之前,先尝试通过使用File > Quit菜单选项退出。如果这样做失败了的话再强制退出。
下手别太重
使用终止命令发送SIGTERM信号给进程基本是在问“亲爱的进程,请停止活动。”如果该询问来自内核,进程就没有忽视的选择。所有情况下,都将开始停止其活动。
某些时候,停止活动需要一段时间。比如让正在处理几十个活动链接的繁忙邮件服务器停下来得需要时间。在邮箱服务停止之前需要几分钟,因为想让其优雅地断开所有活动链接。
通常,管理员认为在发送终止命令后,相关的服务将在几秒钟内关闭。如果没有,他们就使用-9命令强行关闭,这将发送SIGKILL信号给进程。
SIGKILL:寻找与破坏
发送SIGKILL信号可不是礼貌询问进程停止活动——这就像一枪爆头,当场歇菜。该进程正在使用的文件无一幸免,全都强制关闭。一旦采用SIGKILL,你就会冒着破坏目前进程所使用文件的巨大风险。
所以只有在别无选择的情况下使用SIGKILL。事实上,别那么轻松发送SIGKILL命令给进程。某些情况下,就等个15分钟结束进程就好了。贸然采用SIGKILL将损害进程打开的文件。
如果可以,重启整个系统。通过关闭系统,所有进程将接收到SIGTERM信号,然后优雅停止进程,优雅关掉文件。使用重启可能真的能修复问题,并优雅关闭进程。结果就是这种附属性关掉后,拒绝进程也就关掉了,几分钟服务器就又再次运转,也不用损伤文件。不到万不得已就不要使用-9。
翻译
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。