在Java中使用杀命令时需要注意哪些事项

  介绍

在Java中使用杀命令时需要注意哪些事项?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

杀死在linux系统中是用于杀死进程。

杀死pid (. .]

杀命令可将指定的信号发送给相应的进程或工作。杀命令默认使用信号为15日,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9日强制杀死进程或作业。

因此,如果确保将进程杀死,可以使用9参数

kill - 9 pid (. .]

<强> linux中常见的信号

, 1,,SIGHUP ,,,,,,,,,,,挂起进程

, 2,,SIGINT ,,,,,,,,,,,,,终止进程

, 3,,SIGGQUIT,停止进程

, 9,,SIGKILL,无条件终止进程

15,SIGTERM ,,,,,,,,尽可能终止进程

17,SIGSTOP ,,,,,,,,,无条件停止进程,但不是终止

18,SIGTSTP停止或者暂停进程,但不终止进程

19 SIGCONT继续运行停止的进程

<强>在Java中的应用

创建一个SpringBoot的网络应用

启动类如下,添加了一个钩子函数,当进程关闭时,将会调用该钩子函数。

@SpringBootApplication   public  class  WebApplication  {      ,public  static  void 主要(String 参数[]){      ,SpringApplication.run (WebApplication.class, args);      ,Runtime.getRuntime () .addShutdownHook (new 线程(){      ,@Override   ,public  void  run (), {   ,System.out.println (“do  ShutdownHook ..........,“);   ,}   ,});   ,}   }

使用maven打包。

mvn 包

<强>测试杀死3

启动应用

这里注意,如果使用相对路径启动应用,则jps看到的进程名称为jar,使用绝对路径如下则显示完整的jar名称:web - 1.0。jar .

java  -jar  ~//web/目标/web -一个项目1.0。jar

查看进程pid

lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元jps  |, grep 网络   21060,web - 1.0。jar

使用杀死3,

lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元kill  3, 21060

可以看到启动界面打印了Java应用的堆栈信息。打印的是收信到3号时刻的线程信息。

霸贘ava中使用杀命令时需要注意哪些事项"

如果使用以下方式启动应用

nohup  java  -jar  ~//web/目标/web-1.0.jar 一个项目, lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元ls  -l  | grep  nohup.out    - - - - - - -女人;1,lgj  lgj  22811, Jun  9, 00:41  nohup.out

可以看到启动所在的目录多了一个文件nohup。出来。该文件记录了应用启动运行过程中的日志。

nohup命令,,

,表示以后台方式运行应用。但如果退出关闭启动的控制台,进程将会停止。

nohup +,也是以后台方式运行应用,但是退出关闭启动的控制台,进程不会停止。且进程日志将会输出到nohup。中。

此时使用杀死3。打印的线程信息可以到该nohup。出中查看。

<强>测试杀和杀9

启动应用

java  -jar  ~//web/目标/web -一个项目1.0。jar

使用杀死pid杀死进程

lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元jps  |, grep 网络   21470,web-1.0.jar   lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元kill  21470年   lgj@lgj-Lenovo-G470: ~//web/一个项目目标$

可以看到输出日志中输出了钩子函数中所打印的

做ShutdownHook ..........

2019-06-09 01:18:28.610 信息21470 - - - - - - (,,,,,,,,,主要]com.demo.web.WebApplication ,,,,,,,,,,,,:开始WebApplication 4.585秒(5.274 JVM运行)
做ShutdownHook ..........
2019-06-09 01:18:41.381 信息21470 - - - - - - (,,,,,Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor :关闭ExecutorService & # 39; applicationTaskExecutor& # 39;

使用kill 9,pid杀死进程

lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元jps  |, grep 网络   21568,web-1.0.jar   lgj@lgj-Lenovo-G470: ~//web/一个项目目标,美元kill  9, 21568

最后的日志并没有输出钩子函数中的内容

在Java中使用杀命令时需要注意哪些事项