nohup 启动命令中 &gt/dev/null 2&gt&1 相关说明

下面是我们启动 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 是错误输出流,此处 &> 的意思是合并标准输出和错误输出并重定向,即重定向到空设备;注意,& 和重定向符号(>)放到一起说,中间没有空格;

我们对整条命令有了清晰的认识,也就可以根据自己的情况灵活运用。

【完】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章