Articles of kill

如何杀死在c + +的过程,只知道它的名字的一部分

前段时间我需要编写c ++代码来杀死一些进程。 在我的主程序中,我使用系统(“…”)在input上运行带有不同文件名string的大型CAE系统软件包。 CAE软件创build了许多进程,包含进程名string文件名 )。 一些CAE进程worktime > max_time ,比我需要closures他们: //filename contains part of CAE-process name string s="/bin/kill -9 `ps aux | grep "+filename+" | awk {'print $2'}`"; system(s.c_str()); 输出是: Usage: kill pid … Send SIGTERM to every process listed. kill signal pid … Send a signal to every process listed. kill -s signal pid … […]

杀死和睡眠命令在bash脚本中不能正常工作

我有一个bash脚本: #!/bin/sh for ((i=0; i<=10; i++)); do ssh "w$i" 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat' done & pid=$! sleep 3 kill -9 $pid 如果在3秒内没有完成,我想在for loop杀死ssh 。 但是我的观察是,这个过程没有被杀死,而且这个循环需要3秒钟以上的时间来杀死。 你能帮我纠正我的脚本,所以我的脚本可以杀死3秒后for loop过程?

我怎样才能用Perl杀死整个进程树呢?

什么是从Perl脚本中杀死一个进程及其所有subprocess的最好方法? 它应该至less在Linux和Solaris下运行,不需要安装任何额外的软件包。 我的猜测是通过parsing/ proc中的文件或parsingps的输出(在Linux和Solaris之间似乎都不可移植)来获取所有进程及其父母的列表。 然后杀死树中的所有进程(这似乎容易出现竞争状况)。 我可以忍受这种特殊情况下的竞争条件,但是我怎样才能得到进程列表呢?

在Linux中工作时模拟Ctrl-C键盘中断

我正在处理一些脚本(在我工作的公司),这些脚本被加载/卸载到虚拟机pipe理程序中,以便在事件发生时触发一段代码。 实际卸载脚本的唯一方法是按Ctrl – C。 我正在用Python编写一个自动化过程的函数 只要在程序的输出中看到string"done" ,就应该vprobe 。 我正在使用subprocess.Popen执行命令: lineList = buff.readlines() cmd = "vprobe /vprobe/myhello.emt" p = subprocess.Popen(args = cmd, shell=True,stdout = buff, universal_newlines = True,preexec_fn=os.setsid) while not re.search("done",lineList[-1]): print "waiting" os.kill(p.pid,signal.CTRL_C_EVENT) 正如您所看到的,我正在以读写模式打开的buff文件描述符中输出。 我检查最后一行; 如果它已经'done' ,我就杀了它。 不幸的是, CTRL_C_EVENT只对Windows有效。 我能为Linux做什么?

如何将Ctrl-Break发送到正在运行的Linux进程?

我正在debugging运行在Sun的JDK 1.4.2_18上的应用程序中的内存泄漏。 看来这个版本支持命令行param -XX:+ HeapDumpOnCtrlBreak,它应该导致JVM在遇到控制中断时转储堆。 如何将其发送到Linux机器上的后台进程? 看起来kill信号是这样的工作方式,但是我杀了-l没有报告任何显然是Ctrl-Break的东西,至less在我的Ubuntu盒子里。 更新:我用Sun JDK 1.4.2_18testing了Kill -3(_14是第一个以这种方式转储堆的),并且工作。 堆转储文件已创build,并且该进程仍在运行。

当操作系统杀死你的进程时返回代码

我想testing如果使用多进程,我可以在32位操作系统上使用超过4GB的内存(我的是:1GB内存的Ubuntu)。 所以我写了一个malloc稍小于1GB的小程序,并对该数组执行一些操作,并运行该程序的5个实例。 事情是,我怀疑操作系统杀死了其中的4个,只有一个幸存下来,并显示它是“PID:我已经完成”)。 (我已经尝试了小数组,并得到5印刷,当我看着与TOP运行的进程,我只看到一个实例..) 奇怪的是这个 – 我收到了所有实例的返回代码0(成功?),包括据说被OS 我没有得到任何按摩说明进程被杀害。 这个返回代码是否正常? (如果是这样,这减less了我对'返回代码'的信任…) 谢谢。 编辑:一些答案build议在小程序可能的错误,所以在这里。 分支和保存返回码的较大的程序是较大的,我在这里有麻烦,但我认为(并希望)没有问题。 我也注意到,如果不是用我的分叉程序来运行它,我使用'.a.out&./a.out&./a.out&./a.out&'来运行terminal。 ./a.out是附带的小程序的二进制文件)我看到一些“Killed”消息。 #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); […]

Java – Linux的Process.destroy()源代码

我需要检查Process.destroy()代码,看看它是如何kill Linux上的subprocess。 有谁知道这个方法做了什么,或者有一个链接到它的源? 我检查了jdk源代码,并且Process仅仅是一个抽象类,而且destroy方法还没有实现,似乎没有任何指向extends或implements Process子类的链接。 任何帮助将不胜感激。 谢谢,

我怎么能用SIGKILL杀死一个java进程中的Linux进程Process.destroy()做SIGTERM

在Linux中,当我运行java.lang.Process对象上的destroy函数(这是真正的types化的java.lang.UNIXProcess)时,它发送一个SIGTERM信号来处理,有没有办法用SIGKILL来杀死它?

用python杀死进程

我需要做一个脚本,从用户获得以下内容: 1)进程名称(在Linux上)。 2)这个进程写入的日志文件名。 它需要杀死进程并确认进程已closures。 将日志文件名称更改为具有时间和date的新文件名称。 然后再次运行该进程,确认它已经启动,以便继续写入日志文件。 先谢谢您的帮助。