草庐IT

oom-kill

全部标签

linux - 如何在 bash 中组合 "lsof -i :port"和 "kill pid"

我如何在bash中组合这两个命令:lsof-i:portkillpid第一个返回我想要杀死以释放端口的PID。第二个杀死返回的PID。我这样做是因为我不知道有什么方法可以在OSX上的NetbeansIDE中终止jetty网络服务器。有办法吗? 最佳答案 你可以使用$():kill$(lsof-t-i:port) 关于linux-如何在bash中组合"lsof-i:port"和"killpid",我们在StackOverflow上找到一个类似的问题: https

java - Ubuntu Java : Find a specific program's pid and kill the program

我正在尝试制作一个应用程序来检查此特定应用程序是否正在运行,然后在指定的时间后终止该应用程序。我打算获取应用程序的pid。如何获取应用程序的pid?谢谢 最佳答案 你可以试试ps-aux|grepfoobar用于获取pid,然后针对它发出kill命令,或者您可能想使用pkillfoobar,在这两种情况下,foobar都是您要终止的应用程序的名称。 关于java-UbuntuJava:Findaspecificprogram'spidandkilltheprogram,我们在StackO

java - Linux OOM Killer 和 Java 进程

在我们的生产环境中,我经常遇到Tomcat进程被LinuxOOM杀死的问题。检查/var/log/messages它说java没有被污染并且java调用了OOMkiller。-Xms20480m-Xmx20480m在32GB的盒子上。我看到下面的崩溃-OOM是否导致了这次崩溃?或者崩溃是因为OOM而发生的?我该如何调试这个问题?##AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:##SIGSEGV(0xb)atpc=0x00007f4c3230aad7,pid=16248,tid=139964439296320##JREver

linux - 32 和 33 kill 信号发生了什么变化?

如果在bash中输入kill-l并探测信号数。32和33kill信号发生了什么变化? 最佳答案 POSIXrealtimesignals选项定义一组来自SIGRTMIN的信号至SIGRTMAX它们具有各种有用的属性(例如,它们具有明确定义的传递优先级——首先是最低信号编号——并且同一信号的多个实例可以排队,并通过sigqueue()与参数相关联)。这些由内核使用信号编号32向上实现。但是POSIX不需要SIGRTMIN和SIGRTMAX成为用户态代码的编译时常量,而在GNUlibc中它们不是:如果您使用用户态放置源文件通过预处理器(

linux - 为什么我在 bash 中的 kill -9 命令上没有收到 SIGKILL 信号?

在bash脚本中,我按如下方式处理不同的信号:#!/bin/bashsighdl(){echo"signalcaught"#dosomethingexit0}trapsighdlSIGKILLSIGINTSIGTERM以上代码为以下事件正确处理信号:Ctrl+Ckillpidpkill脚本名对于kill-9pid,它不会调用sighdl。根据我的理解(如果我没记错的话)kill-9发送SIGKILL信号。有什么想法吗? 最佳答案 你不能那样做。是的,9是SIGKILL,出于安全原因,Unix系统设计不允许任何脚本/程序捕获SIGKI

linux OOM(内存不足) killer 电子邮件通知?

Thisanswer描述了Linux上的内存不足killer。有没有办法在OOMkiller杀死某些东西时得到通知?最好是电子邮件。人们可能会用看门狗来做到这一点,但我想知道最简单、最可靠的方法是什么。 最佳答案 “logwatch”程序会定期向您发送它配置为感兴趣的所有日志行。它可以配置为通过电子邮件向您发送有关OOM的信息(除非它本身内存不足)。电子邮件通知不能很好地替代来自外部系统的适当监控,因为没有可用内存的机器通常无法发送电子邮件。此外,如果您的系统很重要,那么电子邮件可能太慢而无法从Ops那里得到回复(尤其是在下类时间)

python - 万无一失的跨平台进程kill daemon

我有一些python自动化,它生成了我使用linuxscript记录的telnetsession命令;有两个script每个日志记录session的进程ID(父进程和子进程)。我需要解决一个问题,如果python自动化脚本死了,scriptsession永远不会自行关闭;由于某种原因,这比它应该做的要难得多。到目前为止,我已经实现了watchdog.py(请参阅问题的底部),它self守护,并在循环中轮询python自动化脚本的PID。当它看到python自动化PID从服务器的进程表中消失时,它会尝试终止script。session。我的问题是:scriptsession总是产生两个独

Linux:从 kill 命令获取退出代码

如果我使用kill命令向进程发送SIGTERM信号,我希望得到退出代码,但在运行以下命令时我总是得到0(零)终止进程后:echo$?根据这篇文章中的回答,在向进程发送SIGTERM时我应该得到143:AlwaysappJavaendwith"Exit143"Ubuntu但我没有得到退出代码。为什么? 最佳答案 您获得的退出代码是针对kill命令本身的。0表示成功,即另一个进程收到了您发送的信号。kill只是不报告该进程的退出状态,因为它甚至不能确定其他进程是否由于它发送的信号而退出。 关

linux - 为什么 cgroup 的内存子系统在进程允许内存超过 cgroup 限制时使用 oom-killer 而不是返回内存分配失败?

我们使用cgroup限制程序使用更多资源。但是,当内存超过cgroup的限制时,它会杀死进程。为什么cgroup的内存子系统在进程允许内存超过cgroup限制时使用oom-killer而不是返回内存分配失败? 最佳答案 看起来cgroups可以使用oom-killer或暂停进程(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html)。但是使用ulim

c - KILL 信号是否立即退出进程?

我正在编写使用fork()和exec创建子进程的服务器代码。child的PID在fork()成功时注册,并在CHILD信号被捕获时清除。如果服务器需要停止,所有程序都会被终止,最终会发出KILL信号。现在,这是通过遍历所有已注册的PID并等待CHILD信号处理程序删除PID来实现的。如果子程序没有正确退出,这将失败。因此,我想将kill与waitpid结合使用,以确保清理PID列表并记录并做一些其他事情。考虑下一个代码示例:kill(pid,SIGKILL);waitpid(pid,NULL,WNOHANG);摘自waitpid(2):waitpid():onsuccess,retur