下面是我们启动 Spring Boot 服务常用的命令:
nohup java -Xms1g -Xmx1g -Xss1024K -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -server -jar -Dfile.encoding=utf-8 ./spring-boot-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test >/dev/null 2>&1 &
说明
- nohup 就是no hangup,不要挂断,后台运行,关闭终端,当前运行的进程不终止,标准输出内容会输出到当前目录的 nohup.out 日志文件中而不终端显示;
- /dev/null 是 Linux 一个空设备文件,通常也被称为位桶(bit bucket)或黑洞,这个文件接收到任何数据都会被丢弃;
- Linux系统预留可三个文件描述符:0、1 和 2,他们的意义如下所示:
0 - 标准输入(stdin)
1 - 标准输出(stdout)
2 - 标准错误(stderr) - 重定向的符号有两个:> 或 >>,> 会先清空文件,然后再写入内容,>> 会将重定向的内容追加到现有文件的尾部;
- 命令最后一个 &,表示后台运行的意思,和 nohup 配置表示不挂断后台运行;
举例
- 2>/dev/null
把错误输出到“黑洞”(丢弃输出); - >/dev/null 2>&1
默认情况是1,也就是等同于 1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”; - 2>&1 >/dev/null
把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕; - &>/dev/null
linux中的文件号,1 是标准输出流,2 是错误输出流,此处 &> 的意思是合并标准输出和错误输出并重定向,即重定向到空设备;注意,& 和重定向符号(>)放到一起说,中间没有空格;
我们对整条命令有了清晰的认识,也就可以根据自己的情况灵活运用。
【完】