问题标签 [sigkill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2757 浏览

c++ - 在 C++ 中分配内存时发出 SIGKILL

我正在为 C++ 中内存有限的嵌入式系统(Tegra 2)开发应用程序。我正在处理有时会出现的代码newnew[]整个代码的 NULL 结果,但应用程序能够处理这个问题。

问题是如果内存完全耗尽,系统会通过 SIGKILL 杀死进程。我能以某种方式告诉它new应该只返回 NULL 而不是终止进程吗?

0 投票
1 回答
288 浏览

php - 重定向输出时无法终止子进程

我有一个 PHP 脚本来运行具有执行时间限制和 cpu 时间限制的命令。

限制.php

另一个用于测试的 PHP 脚本。

测试.php

运行此命令:

php limit.php "php test.php" 10

使用“ps -ef|grep ph[p]”,你可以找到我们预期的被分叉和杀死的进程。

但是当我尝试这个命令时,

php limit.php "php test.php > /tmp/y.log" 10

子进程不能像我们预期的那样被杀死。看:

开始:

================

10秒后:

==================

PID 28979 fork 28980,然后函数 exec 创建了 2 个 PID 为 28981 和 28982 的子进程。10 秒后,28979 向 28980 发送 SIGKILL,但 28981 和 28982 没有受到影响(如果没有像 "> /tmp 这样的输出重定向,它们将被杀死/y.log")。

我的服务器是:Linux s4 2.6.18-308.1.1.el5 #1 SMP Wed Mar 7 04:16:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux With PHP 5.3.9 (cli) (built: Feb 15 2012 11: 54:46)

有什么建议吗?

0 投票
2 回答
622 浏览

php - 标准输出影响 SIGKILL?

我有一个脚本来限制命令的执行时间长度。

限制.php

然后我用一些命令测试这个脚本。

测试A

3s 后,我们可以发现进程如我们预期的那样被杀死了。

测试B

删除输出代码并再次运行。

结果看起来不太好,函数“exec”创建的进程没有像 TEST A 那样被杀死。

系统信息

为什么进程在 TEST A 中被杀死但在 TEST B 中没有?输出会影响 SIGKILL 吗?

有什么建议吗?

0 投票
1 回答
806 浏览

iphone - SIGKILL 信号在 iPhone sim 上的应用程序启动,但不是 Xcode

好的,所以从全新(以前未在 iPhone 模拟器上安装的应用程序)开始,该应用程序可以正常启动。然后我按下主页按钮并单击图标,它也很好。然后,如果我按主页按钮,然后从多任务栏关闭应用程序,然后按图标,我会收到 SIGKILL 错误。

但是,当我在 Xcode 中按下运行时,它总是完美无缺地工作(即使在我从多任务栏关闭它之后,按下图标失败)。这只是模拟器的一个怪癖吗?这种行为只有在我实现了一些 NSUserDefault 的东西之后才开始,以记住它的状态等。它确实记住了所有的默认值,但当它工作时。

任何帮助表示赞赏。

编辑:

这是我认为可能与我的 MainViewController 中的 NSUserDefaults 相关的内容(我不在任何其他 viewController 中使用 UserDefaults)。

我还在其他一些方法中执行了一些 setObjects/同步,但它们仅在单击按钮时执行(当它崩溃时不会发生)。

0 投票
3 回答
3894 浏览

python - 如何在python中找到Tomcat的PID并杀死它?

shutdown.sh通常,通过运行其脚本(或批处理文件)来关闭 Apache Tomcat 。在某些情况下,例如当 Tomcat 的 Web 容器托管一个使用多线程执行一些疯狂操作的 Web 应用程序时,shutdown.sh优雅地运行会关闭Tomcat 的某些部分(因为我可以看到更多可用内存返回到系统),但是 Tomcat进程继续运行。

我正在尝试编写一个简单的 Python 脚本:

  1. 来电shutdown.sh
  2. 运行ps -aef | grep tomcat以查找引用了 Tomcat 的任何进程
  3. 如果适用,终止进程kill -9 <PID>

这是我到目前为止所得到的(作为原型 - 我是 Python BTW 的新手):

我在中间部分苦苦挣扎 - 获取grep结果,检查它们的大小是否大于 1(因为grep总是返回对自身的引用,所以总是返回至少 1 个结果,我认为),然后解析返回的PID 并将其传递到killPidCmd. 提前致谢!

0 投票
3 回答
669 浏览

python - 如何在我的脚本中消除 Python 警告?

我想要一个grep用于特定进程的 Python 脚本,提取它的 PID,然后杀死它。这是我正在使用的:

但是,尽管它确实关闭了我的进程(Apache Tomcat),但每当我运行它时,我都会在终端中收到以下“警告”:

任何 Python meastros 都可以查看脚本并弄清楚为什么我会收到所有这些/bin/sh: 1: kill: Illegal number: <whatever>警告/错误/输出吗?关于如何修复它们的任何建议?提前致谢!

0 投票
1 回答
2682 浏览

cocoa - 如何在可可 Mac OS X 10.5 中强制杀死另一个应用程序

我有这个任务,我需要从我的应用程序中杀死另一个我的应用程序,问题是另一个应用程序有一个终止确认对话框(没有要保存的关键数据,只有确认用户退出意图)。

  • 在 10.6+ 上,您将使用:

    /li>
  • 但是在 <10.6 这个常用的 Apple Event 上:

    不能强行退出!!!

那你能用什么?

0 投票
2 回答
2369 浏览

c++ - Linux kill() 意外错误

Kill(pid, 0) 似乎没有正确设置错误代码...如 man for kill 中所述

错误

如果出现以下情况,kill() 函数将失败:

EINVAL sig 参数的值是无效或不受支持的信号编号。
EPERM 进程无权向任何接收进程发送信号。
ESRCH 找不到与pid指定的进程或进程组对应的进程或进程组。以下部分内容丰富。 1

它返回 ENOENT (没有这样的文件或目录),然后有时它返回 EINTR (系统调用中断)......

这是我正在做的事情:

难道我做错了什么?

0 投票
1 回答
1710 浏览

c - 如何用C杀死管理线程?

我有以下代码。构建应用程序是 myprogram。

如果我启动 myprogram 然后 killall myprogram 然后我再次启动 myprogram 然后 myprogram 崩溃。

崩溃的原因是由于第一次启动创建的管理线程在第二次启动之前没有正确清除。

因此,在第二次启动时,myprogram 尝试使用 pthread 创建线程,并且尚未删除旧的线程管理,因此会导致崩溃。

有没有办法在我第一次启动结束时或在我第二次启动C开始时终止管理线程?

顺便提一句:

linux使用libuClibc-0.9.30.1.so并根据这个问题How to kill all subprocess created with pthread_create after canceling a thread? 此 libc 使用 linux 线程实现,pthread并且不使用带有 NPTL(“Native posix thread library”)实现的 libc,因此仅针对这种 libc 情况创建管理线程。

0 投票
2 回答
569 浏览

python - python-twisted 和 SIGKILL

我有一个使用扭曲框架的python应用程序。

我利用存储在由 twistd 生成的 pidfile 中的值。启动器脚本检查它的存在,如果 pidfile 已经存在,则不会产生守护进程。

但是,twistd 在收到SIGKILL信号时不会删除 .pid 文件。这使启动器脚本认为守护程序已经在运行。

我意识到停止守护进程的正确方法是使用SIGTERM信号,但问题是当启动守护进程的用户注销时,守护进程永远不会收到SIGTERM信号,所以显然它被SIGKILL. 这意味着一旦用户注销,他将永远无法再次启动守护进程,因为 pidfile 仍然存在。

在这种情况下,有什么办法可以使该文件消失吗?