nohup & Kill
前言
进行jar包部署时,关闭 xshell 时,程序中断!这就需要使用nohup命令,不挂断运行程序。当需要中断程序时,使用kill命令。
一、nohup
nohup
是一个Linux/Unix命令,用于在后台运行进程,即便用户退出了终端,进程也能够继续执行。在这种情况下,进程不会受到 HUP(挂起信号)的影响,因此可以持续运行。
使用 nohup
命令非常简单,只需在要启动的命令前面添加 nohup
,如下所示:
nohup command &
其中 command
是你要运行的命令。&
符号将进程放入后台以便继续运行。
当你执行此命令时,nohup
将带有输出的进程重定向到名为 nohup.out 的文件。如果你没有指定其他输出文件,则在当前目录中创建它。
你还可以将输出重定向到其他文件,例如:
nohup command > output.log 2>&1 &
此命令将把标准输出和标准错误输出重定向到 output.log 文件中。
下面是 nohup
命令的一些常见选项:
-p [pidfile] 指定 PID 文件的名称。
-c [callback]' 当进程终止或完成时运行回调函数。
-h 打印使用帮助。
-v 打印版本信息。
除了 nohup
命令之外,我们还可以使用 screen
命令来长时间运行进程,但这也需要花更多的时间了解。
注意事项:
- 当你执行出现错误时,你会在终端中看到警告消息,因此可以使用日志文件捕获在后台运行的进程输出。
- 如果无法访问输出文件,请确保目录有足够的权限。
- 在关闭机器之前,请务必将所有进程停止或杀死。
二、kill
1.查看进程
在 Linux 中,可以使用 kill
命令杀死进程。要杀死正在运行的 Jar 包进程,您需要知道该进程的进程 ID (PID)。
查找正在运行的 Java 进程以及它们的 PID:
ps -ef | grep java
这会列出所有正在运行的 Java 进程以及它们的 PID。找到您想要杀死的进程
2.杀死进程
使用 kill
命令杀死进程
kill <PID>
将 <PID>
替换为您要终止的进程的 PID。例如,如果要杀死 PID 为 1234 的进程,那么命令如下:
kill 1234
请注意,若您需要强制杀掉该进程,可使用 -9
选项,在相应的杀命令之后键入 -9
。例如:
kill -9 1234
这将强制终止进程而不向其发送终止信号。
最后,您可以再次运行
ps -ef | grep java
命令来确保该进程已经被成功终止。