kill 在你退出进程后仍运程_Kill -9 和Kill -15 有什么区别

我们经常使用启动/关闭脚本来关闭应用程序,例如tomcat 容器的启动脚本有 startup.sh 和shutdown.sh ,通过这两个脚本,可以关闭启动Tomcat 。

但是还有一种方式,根据应用名找到 进程id ,杀死进程,到达进程id关闭的的效果。

linux 系统可以采用 kill 加信号编号的方式来关闭进程。 例如 kill -9 PID

可以使用 kill -l 命令,查看所有的信号编号。

fb6bc9bc3bdf2629e36df8836ea982c4.png

简单来说:

kill -9 PID 是操作系统从内核级别强制杀死一个进程.

kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭.

SIGNTERM(15) 的效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。

public class ShutdownHookTest {

    private static final void shutdownCallback() {
        System.out.println("Shutdown callback is invoked.");
    }

    public static void main(String[] args) throws InterruptedException {
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void run() {
                shutdownCallback();
            }
        });
        Thread.sleep(100000);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值