强制杀死java_如何在不强制的情况下杀死Java中的进程?

我有一个运行许多其他程序的Java程序.一旦用户完成,他们就有一个按钮来杀死所有进程,这应该会杀死所有正在运行的东西,但它应该强制执行它们.这些其他进程中的至少一个也是用Java编写的,并且具有许多关闭挂钩,因为它在退出时自动保存首选项文件并杀死它自己启动的进程,例如.

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

public void run() {

if (process != null)

process.destroy();

}

}

当主进程调用destroy时,上面的代码不会在子进程上运行.无论如何,我可以终止进程,这样仍然可以运行吗?

我从Perl移植它会杀死它(9,@ kill_process);

谢谢.

解决方法:

杀死信号9(SIGKILL)告诉操作系统终止进程.该过程事先没有得到通知,因为它会发生这种情况并且无法进行任何清理.

process.destroy()相当于Perl的kill(9,@ kill_process);,你的旧进程也不会进行任何清理.

杀死信号15(SIGTERM)将告诉进程自杀.

标签:java

来源: https://codeday.me/bug/20190726/1547643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值