标签: sigkill

如何在bash中将键绑定到sigkill?

我正在开发我的应用程序(在Linux上),遗憾的是它有时会挂起.我可以Ctrl+C用来发送sigint,但我的程序忽略了sigint,因为它太过分了.所以我必须做过程杀死舞蹈:

Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid
Run Code Online (Sandbox Code Playgroud)

有没有办法配置bash在我按下时将kill信号发送到当前进程 - 比如说Ctrl+Shift+C?

linux bash sigkill

9
推荐指数
3
解决办法
8919
查看次数

SIGKILL在用C++分配内存时

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

问题是如果内存完全耗尽,系统会通过SIGKILL杀死进程.我可以告诉你new应该只返回NULL而不是杀死进程吗?

c++ memory-management sigkill

9
推荐指数
1
解决办法
2010
查看次数

运行模拟器4.0的iPhone应用收到了Sigkill

我刚拿到了iPhone SDK 4,而我正试图开发一个我之前正在开发的应用程序.所以我实现了两个 -(void)applicationDidEnterBackground:(UIApplication *)application 和- (void)applicationWillTerminate:(UIApplication *)application

当我单击模拟器4.0中的主页按钮时,它似乎工作正常.应用程序调用 -(void)applicationDidEnterBackground:(UIApplication *)application并进入后台状态..

但是,我然后双击主页按钮以显示在后台运行的应用程序,并按住它以显示减号或退出.当我点击减号时,调试器说

节目收到信号:"SIGKILL"

此外,- (void)applicationWillTerminate:(UIApplication *)application永远不会被称为.我错过了我需要做的事情才能在OS4上工作吗?或者至少可以有人指出我调试SIGKILL的方法.谢谢.

iphone debugging sigkill ios4

8
推荐指数
1
解决办法
9075
查看次数

在glDrawArrays()上调试SIGKILL.iPhone iOS

我希望有人可以帮我弄清楚发生了什么.

我正在开发一款iPhone游戏cocos2d framework.我不时因SIGKIL信号而停止代码.如果我按"继续"按钮,游戏继续没有任何问题.控制台日志是明确的(没有错误或警告消息)我在我的自定义类上得到它,使用绘制一个纹理化的矩形OpenGL.这段代码每秒执行大约300次,SIGKILL每1-2小时只能运行一次.

这是一段代码:

glColor4f(1.f, 1.f, 1.f, 1.f);
i = 1;
glBindTexture(GL_TEXTURE_2D, curText);
glVertexPointer(2, GL_FLOAT, 0, screenCoord [i]);
glTexCoordPointer(2, GL_FLOAT, 0, textureCoord [i]);            
SIGKIL -->  glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
Run Code Online (Sandbox Code Playgroud)

这是当时阵列的内容:

(gdb) p *screenCoord[1]@8
$8 = {0, 296, 249.827072, 296, 0, -0, 249.827072, -0}
(gdb) p *textureCoord[1]@8
$12 = {0.456224144, 0.29296875, 0.700195312, 0.29296875, 0.456224144, 0.58203125, 0.700195312, 0.58203125}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

#0  0x123028a7 in <????> ()
#1  0x12301528 in <????> ()
#2  0x0a767092 in gldRenderFillPolygonPtr ()
#3 …
Run Code Online (Sandbox Code Playgroud)

iphone opengl-es sigkill ios

7
推荐指数
1
解决办法
719
查看次数

SIGKILL init进程(PID 1)

关于将信号9(SIGKILL)发送到init进程(PID 1),我遇到了一个奇怪的问题.您可能知道,SIGKILL不能通过信号处理程序忽略.当我尝试将SIGKILL发送给init时,我发现没有发生任何事情; init不会被终止.试图弄清楚这种行为,我决定将自己附加到使用strace的init进程,也可以更清楚地看到发生了什么.现在是奇怪的部分.如果我用strace"查看"init进程并发送SIGKILL,系统崩溃了.

我的问题是为什么会发生这种情况?为什么在我查看流程时系统崩溃,为什么在我不这样做时它不会崩溃?正如我所说,在这两种情况下我都将SIGKILL发送给init.在CentOS 6.5,Debian 7和Arch上测试过.

谢谢!

unix signals pid init sigkill

7
推荐指数
1
解决办法
4916
查看次数

python sigkill捕捉策略

我想知道是否有办法从OOM杀手那里抓住sigkill.我有一个任务队列,每隔一段时间就会创建一个由OOM杀死的庞大任务.这个:

catch Exception as ex:
    # clean up!
Run Code Online (Sandbox Code Playgroud)

不起作用,因为SIGKILL无法被抓住.所以........在SIGKILL之后有什么策略可以清理吗?我可以分叉,看看孩子的过程吗?如果是这样,子进程打开的任何资源都必须事先由父母知道?或者我可以做一些版本的

ps -ef | grep <child pid> | xargs kill -9  (you get the idea...)
Run Code Online (Sandbox Code Playgroud)

目前,如果我在OOM杀死后没有清理,我会留下大量的子进程和其他事情,这些事情只会在重试任务时变得更糟,很快就会无法访问服务器.

最后,这样做是否足够:

kill -9 <process id> 
Run Code Online (Sandbox Code Playgroud)

测试这种确切的情况?

非常感谢!

python linux memory sigkill

7
推荐指数
1
解决办法
8850
查看次数

SIGKILL杀死了这个过程

我有一个进程在执行程序后立即被杀死.这是已编译的可执行文件的代码,它是一个小程序,它读取由标准输入(通常是描述性文件)中的数字表示的多个图形,并使用Prim算法找到每个图形的最小生成树(它不显示结果,它只是找到解决方案).

#include <stdlib.h>  
#include <iostream>  

using namespace std;

const int MAX_NODOS = 20000;
const int infinito = 10000;

int nnodos;
int nAristas;
int G[MAX_NODOS][MAX_NODOS]; 
int solucion[MAX_NODOS][MAX_NODOS];
int menorCoste[MAX_NODOS];
int masCercano[MAX_NODOS];



void leeGrafo(){
    if (nnodos<0 || nnodos>MAX_NODOS) {
        cerr << "Numero de nodos (" << nnodos << ") no valido\n";
        exit(0);
    }  
    for (int i=0; i<nnodos ; i++)
        for (int j=0; j<nnodos ; j++)
            G[i][j] = infinito; 
    int A,B,P;
    for(int i=0;i<nAristas;i++){
        cin >> A >> B >> P; 
        G[A][B] = P; …
Run Code Online (Sandbox Code Playgroud)

c++ ubuntu gcc sigkill execve

6
推荐指数
2
解决办法
4690
查看次数

SIGKILL信号处理

如果一个linux进程正在等待I/O(即它处于SLEEP状态)并且SIGKILL发出一个信号,那么在终止(STOPPED状态)时它会通过RUNNING还是READY状态?

换句话说,对于一个处理系统中断的过程,例如一个生成的系统中断SIGKILL是否需要通过RUNNING或READY状态?

知道在正常情况下一个进程可以处理来自内核的中断并且知道SIGKILL有一个非常矛盾的目的是杀死一个无响应的信号,我怀疑对被杀死的进程有多少控制权,如果有的话.

unix linux posix sigkill posix-api

6
推荐指数
1
解决办法
1万
查看次数

无法使用`syscall.Kill()`一个守护进程的Go进程

我在Go中创建了一个程序来杀死一个进程 syscall.Kill()

但是,如果我使用fork()+ 继续该过程,setsid()则syscall.Kill()不会杀死该过程.

如果我使用shell,kill那么在这两种情况下我都能够杀死那个进程.

我尝试了不同的信号:SIGINT,SIGTERM和SIGKILLbuthey不杀守护进程.

signals daemon go sigkill

6
推荐指数
1
解决办法
177
查看次数

处理进程是否被外部终止

我正在编写一个程序,在一个进程中创建多个线程。

我需要处理如果进程被某人使用kill -9信号或Ctrl + C从外部终止,我的程序应该在关闭之前执行一些操作,例如它应该将进程的状态更改为数据库中的中止。

我该如何处理?

我需要addShutdownHook()?或者还有其他更好的解决方案来解决我的问题吗?

我已经添加了 :

Runtime.getRuntime().addShutdownHook( new Thread() {

            @Override
            public void run() {
                logger.info( "Running Shutdown Hook" );
                //call some method
                System.out.println( "Running Shutdown Hook" );
            }
        } );
Run Code Online (Sandbox Code Playgroud)

在我的主要方法中,但它似乎不起作用。

java multithreading sigkill kill-process shutdown-hook

6
推荐指数
1
解决办法
1212
查看次数