我at在Solaris 10上使用该命令创建了一个作业.
它现在正在工作,但我想杀死它,但我不知道如何找到工作号码以及如何杀死该工作或流程.
我正在制作这些内容:
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
Run Code Online (Sandbox Code Playgroud)
但仍然得到这个警告.
如何在单击中终止整个应用程序..完成()不起作用?它重定向到以前的活动...请指导我.
public void onClick(View arg0) {
// TODO Auto-generated method stub
WallpaperManager wp = WallpaperManager
.getInstance(getApplicationContext());
try {
Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay();
int width = d.getWidth();
int height = d.getHeight();
wp.setBitmap(b1);
} catch (IOException e) {
Log.e("error", "Cannot set image as wallpaper", e);
}
finish();
}
Run Code Online (Sandbox Code Playgroud) 有关积极SPIDs和均匀的大量信息-1,-2但我没有找到任何信息Blocked By -3.有人能帮忙吗?
GUID是全0,而当我运行sp_who2的MASTER分贝它显示SPID的56是RUNNABLE在tempdb当我尝试,但kill它还是运行sp_who2在tempdb它没有显示出来,而MASTER和tempdb sp_who2实例都是SPID 54.
编辑:运行时,SELECT * FROM sys.sysprocesses WHERE spid = 56这是被阻止的SPID的输出:
spid 56
kpid 10500
blocked -3
waittype 0x0006
waittime 313816
lastwaittype LCK_M_IS
waitresource TAB: 5:1668253048:0
dbid 5
uid 1
cpu 0
physical_io 0
memusage 4
login_time 02:44.3
last_batch 02:44.5
ecid 0 …Run Code Online (Sandbox Code Playgroud) 我正在调试Sun的JDK 1.4.2_18上运行的应用程序中的内存泄漏.看来这个版本支持命令行param -XX:+ HeapDumpOnCtrlBreak,它可能导致JVM在遇到控制中断时转储堆.如何将其发送到Linux机器上的后台进程?似乎杀死信号是应该工作的方式,但是我杀了-l没有报告任何显然是Ctrl-Break的东西,至少在我的Ubuntu盒子上.
更新:我测试了使用Sun JDK 1.4.2_18杀死-3(_14是第一个以这种方式转储堆),并且它有效.已创建堆转储文件,并且该进程仍在运行.
我正在处理一些脚本(在我工作的公司中),这些脚本被加载/卸载到虚拟机管理程序中,以便在事件发生时触发一段代码.实际卸载脚本的唯一方法是点击Ctrl- C.我正在用Python编写一个自动化过程的函数
一旦它看到"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)
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在buff以读/写模式打开文件描述符中的输出.我检查最后一行; 如果它有'done',我杀了它.不幸的是,CTRL_C_EVENT它仅适用于Windows.我能为Linux做些什么?
我想重新启动我在服务器上运行的许多Node.js进程之一.如果我运行,ps ax | grep node我会获得所有Node proccesses的列表,但它并没有告诉我他们在哪个端口.如何杀死在端口3000上运行的那个(例如).管理多个Node进程的好方法是什么?
SIGINT信号和SIGTERM信号之间有什么区别?我知道这SIGINT相当于在键盘上按Ctrl + C,但是SIGTERM用途是什么?如果我想优雅地停止一些后台进程,我应该使用哪些?
我用iptraf来监控linux中的网络流量,shell命令是(make iptraf在后台运行):
iptraf -s eth0 -f -B -L ./traffic.dat
Run Code Online (Sandbox Code Playgroud)
如果我想得到结果,我必须先停止iptraf,所以我使用shell命令:
kill -SIGUSR2 $pid
Run Code Online (Sandbox Code Playgroud)
但是,如果我将这些shell命令移动到bash脚本文件(net.sh)中,我无法阻止iptraf,并且我收到错误:
kill: SIGUSR2: invalid signal specification
Run Code Online (Sandbox Code Playgroud)
我在脚本文件(net.sh)中使用'kill -l',我发现没有参数名称是SIGUSR2.如果我使用USR2或-9,我什么也得不到.
完整的脚本文件是:
iptraf -s eth0 -f -B -L ./temp.txt
pid=`ps -ef | grep iptraf | grep -v grep | awk '{print $2}'`
kill -USR2 $pid
cat temp.txt
Run Code Online (Sandbox Code Playgroud)
这些命令后我什么都没得到.
如果我想得到结果,我该怎么办?
我正在与一个可以进行根级调用而无需提供密码的用户一起运行。我的用户目前做这样的事情
pr = subprocess.Popen("sudo sleep 100".split())
sleep(5)
pr.kill()
Run Code Online (Sandbox Code Playgroud)
但这会导致此错误,因为用户不是 root,因此它无法杀死 root 进程
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 1572, in kill
self.send_signal(signal.SIGKILL)
File "/usr/lib/python2.7/subprocess.py", line 1562, in send_signal
os.kill(self.pid, sig)
OSError: [Errno 1] Operation not permitted
Run Code Online (Sandbox Code Playgroud)
所以我尝试做这样的事情
pr = subprocess.Popen("sudo sleep 100".split())
sleep(5)
kill_pr = subprocess.Popen("sudo kill {}".format(pr.pid))
Run Code Online (Sandbox Code Playgroud)
但这并没有杀死有问题的进程。例如,如果
>> subprocess.Popen("sudo sleep 100".split()).pid
5000
Run Code Online (Sandbox Code Playgroud)
但
$ pgrep sleep
5001
Run Code Online (Sandbox Code Playgroud)
所以似乎pid返回的subprocess.Popen("..").pid值比运行我想杀死的命令的进程的实际 pid 高一个
我假设pid从Popen调用返回的是父进程,所以我尝试做类似的事情
sudo …