nohup命令详解
在我们想要把SpringBoot微服务工程部署到远程服务器时,会通过java -jar springboot.jar的方式启动SpringBoot微服务。但是当我们把运行这个命令的SSH客户端退出登录就会导致SpringBoot进程也一起停止了,然后当然就没法访问我们启动的项目了。
此时我们可以使用nohup命令来让SpringBoot进程持续运行,不会随着SSH客户端的关闭而结束。
①前台运行和后台运行
默认情况下Linux命令都是前台运行的,前台运行的特点是前面命令不执行完,命令行就一直被前面的命令占用,不能再输入、执行新的命令。
#!/bin/bashecho "hello before sleep"sleep 20echo "hello after sleep"
前台(默认情况)运行上面脚本的效果是:
后台运行上面脚本的效果是:
但是以后台方式运行并不能解决前面提出的问题:我们的shell客户端(例如:xshell)和服务器断开连接后,SpringBoot进程会随之结束,这显然不满足我们部署运行项目的初衷。
②不挂断运行
所谓“不挂断”就是指客户端断开连接后,命令启动的进程仍然运行。nuhup命令就是”no hang up“的缩写。使用nohup命令启动SpringBoot微服务工程的完整写法是:
nohup java -jar spring-boot-demo.jar>springboot.log 2>&1 &
命令比较复杂,下面画图详细解释一下: