标签: kill

我如何一次杀死Unix中的所有shell?

随着时间的推移,我的Mac会变慢 原因是我的大量贝壳,如Bashes and Fishes.每个shell都有不同的PID.一个接一个地杀死炮弹太麻烦了.我怎么能立刻杀死他们?

unix sysadmin shell kill

2
推荐指数
3
解决办法
3809
查看次数

操作系统终止您的进程时返回代码

我想测试一下,如果使用多重进程,我可以在32位操作系统上使用超过4GB的内存(我的:Ubuntu,1GB内存).

所以我编写了一个小程序,mallocs略小于1GB,并对该阵列执行一些操作,并运行该程序的5个实例查询分叉.

问题是,我怀疑操作系统杀死了其中的4个,只有一个幸存下来并显示它是"PID:我已经完成了").

(我用小阵列尝试了它并获得了5次打印,当我用TOP查看正在运行的进程时,我只看到一个实例..)

奇怪的是这个 - 我收到了所有实例中的返回码0(成功?),包括那些据称被OS杀死的实例

我没有得到任何按摩说明过程被杀死了.

这种情况的返回码是否正常?

(如果是这样,它会降低我对'返回代码'的信任......)

谢谢.

编辑:一些答案提示小程序中可能存在错误,所以在这里.分叉和保存返回代码的较大程序较大,我在这里上传时遇到了麻烦,但我认为(希望)没关系.

另外我注意到如果不是用我的分叉程序运行它,我使用'./a.out&./a.out&./a.out&./a.out&'在终端上运行它(当./a.out是附加的小程序的二进制文件.我确实看到了一些"被杀"的消息.

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#define SMALL_SIZE 10000
#define BIG_SIZE 1000000000
#define SIZE BIG_SIZE
#define REAPETS 1

    int
main()
{
    pid_t my_pid = getpid();

    char * x = malloc(SIZE*sizeof(char));

    if (x == NULL)
    {
            printf("Malloc failed!");
            return(EXIT_FAILURE);
    }

    int x2=0;
    for(x2=0;x2<REAPETS;++x2)
    {
            int y;
            for(y=0;y<SIZE;++y)
                    x[y] = (y+my_pid)%256;
    }
    printf("%d: I'm over.\n",my_pid);
    return(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

linux memory-management kill process return-value

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

用Java立即杀死线程

是否可以在不引发异常的情况下终止Java线程?

这仅用于测试目的 - 我想模拟整个计算机死于中间线程的情况.

注意 - 我看到了一个已弃用的Thread.destroy()方法,但文档说它从未实现过.

java multithreading kill

2
推荐指数
1
解决办法
3156
查看次数

使用信号在C中进行Kiling进程

我的程序中的主要过程分配3个进程,并将进程ID称为pid1,pid2,pid3.Pid1和pid2进程处于无限循环中.我想要的是当pid3进程结束时,包括main终止的所有进程.截至目前,我正在使用:

wait(pid3);
kill(0, SIGKILL);
Run Code Online (Sandbox Code Playgroud)

正如我所说的那样完成所有这些,但它在终端上打印杀死.我不希望信号显示被杀死,事实上没什么,但优雅地退出程序.我怎样才能做到这一点?

c signals kill process

2
推荐指数
1
解决办法
192
查看次数

如何在C#中杀死线程?

我有一个线程打开一个MyMessageAlert类型的形式.此表单是一个弹出窗口,在我调用它时打开.它有一个定时器,在30秒后调用CloseWindow()方法.

m_messagAlert = new MyMessageAlert(); 
ParameterizedThreadStart thStart = new ParameterizedThreadStart(m_messagAlert.setMessage);
Thread thread = new Thread(thStart);
thread.Start(strMessage); //at this point, the MyMessageAlert form is opened.
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个类型线程列表:

public List<Thread> m_listThread;
Run Code Online (Sandbox Code Playgroud)

每次我创建一个线程,我都将它添加到我的列表中:

m_listThread.Add(thread);
Run Code Online (Sandbox Code Playgroud)

当我关闭应用程序时,我希望打开的MyMessageAlert类型的形式将立即关闭(不等待30秒).问题是我无法阻止它!

我尝试使用Abort()函数通过循环遍历列表来杀死它:

foreach (Thread thread in m_listThread)
 {
      if (thread.IsAlive)
           thread.Abort();
 }
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

c# multithreading kill

2
推荐指数
1
解决办法
5004
查看次数

PHP:杀死脚本或提前退货?

在PHP中,我可以使用die()来杀死整个脚本.但是,我希望脚本执行到某个点并退出而不会使整个脚本死亡.

像这样的东西:

echo "Hello, what is your name?";
if($name == $blacklist)
{
   echo "I don't talk to strangers";
   die(); // This will break all the echos
}
else
  // Stuff
Run Code Online (Sandbox Code Playgroud)

我只是希望脚本终止(并将回声打印到终止点),并且使用die()实际上会使脚本不打印.

有任何想法吗?也许在C中"返回0"?

php return kill die

2
推荐指数
1
解决办法
9477
查看次数

如何在不被看门狗杀害的情况下进行冗长的操作?苹果手机

我有一个很少执行的重要操作.在某些情况下,执行可能需要几分钟.我的应用程序在50秒操作后被杀死.怎么避免呢?

我应该把它放在后台线程中吗?谁能请我指出正确的方向.我没有找到任何关于所谓看门狗的有用信息.是后台线程的方式吗?

kill ios

2
推荐指数
1
解决办法
3552
查看次数

当调用者进程被终止时,将杀死IO.popen命令

我有一个启动子进程的Ruby脚本.我希望他们在整个过程被杀死时被杀死.

IO.popen('testacular start unit.conf.js', 'w')
Run Code Online (Sandbox Code Playgroud)

运行我的脚本:

user.name:/my/repo [git: my-branch] $ ruby my-script.rb
Run Code Online (Sandbox Code Playgroud)

来自testacular的输出:

user.name:/my/repo [git: my-branch] $ info: Testacular server started at http://localhost:8000/
info (launcher): Starting browser PhantomJS
info (PhantomJS 1.7): Connected on socket id uVAO41Q2niyLA8AqbZ8w
PhantomJS 1.7: Executed 44 of 44 SUCCESS (0.213 secs / 0.115 secs)
Run Code Online (Sandbox Code Playgroud)

点击Control-C来杀死进程.检查正在运行的进程:

user.name:/my/repo [git: my-branch] $ ps
  PID TTY           TIME CMD
 # ...
39639 ttys019    0:01.28 node /usr/local/bin/testacular start unit.conf.js
39649 ttys019    0:00.09 node /usr/local/bin/phantomjs /var/folders/2p/dklw3xys2n3f4hqmx73zvz6w0000gp/T/testacular-61981618/capture.js
39650 ttys019    0:00.82 /usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs /var/folders/2p/dklw3xys2n3f4hqmx73zvz6w0000gp/T/testacular-61981618/capture.js
Run Code Online (Sandbox Code Playgroud)

我们可以看到testacular进程仍在运行.

手动杀死它,看看典型的testacular关闭输出: …

ruby io kill process popen

2
推荐指数
1
解决办法
2461
查看次数

Erlang:杀死在后台运行的所有进程

我在后台开始使用以下过程:

erl -s system start -detached
Run Code Online (Sandbox Code Playgroud)

我需要杀死这个过程.有没有办法杀死在后台运行的所有进程?

我试过了:

init:reboot()
Run Code Online (Sandbox Code Playgroud)

erlang kill process

2
推荐指数
1
解决办法
4001
查看次数

SQL脚本杀死所有被阻止的进程?

我正在尝试创建一个可以杀死所有被阻止进程的SQL脚本.

我错过了什么吗?

declare @max_count int, @count int, @sqlstring varchar(100)
declare @spid_table table (spid int NOT NULL)

INSERT @spid_table
select spid
from master.dbo.sysprocesses
where spid in (select blocked from master.dbo.sysprocesses where blocked > 0) 

select @max_count = MAX(spid) FROM @spid_table
select top 1 @count = spid from @spid_table

while @count <= @max_count
begin
select @sqlstring = 'kill ' + CONVERT(varchar(4), @count)
exec(@sqlstring)
end
Run Code Online (Sandbox Code Playgroud)

sql sql-server kill kill-process

2
推荐指数
1
解决办法
7864
查看次数