nohup命令 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
命令格式
nohup Command [ Arg … ] [ & ]
参数说明
- Command:要执行的命令。
- Arg:一些参数,可以指定输出文件。
- &:让命令在后台执行,终端退出后命令仍旧执行。
命令后台执行,正常输出和错误输出到a.log文件
- > nohup command > a.log 2>&1 &
2>&1 解释
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
- 0 – stdin (standard input,标准输入)
- 1 – stdout (standard output,标准输出)
- 2 – stderr (standard error,标准错误输出)
后台下载文件
- > nohup wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz &
- // 查看后台的进程
- > jobs
- [1]+ Running nohup wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz &
下载过程中,输出在nohup.out文件中,可以使用tail -f nohup.out动态查看。
后台运行SpringBoot项目
- > nohup java -jar rumenz.jar &
后台执行bash命令
- > nohup bash -c 'cal && ls' > output.txt