服务器后台运行程序及标准输出指令详解记录
命令解释:
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
- 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
- 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
- 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。
nohup ./test > rnu.log 2>&1 &
-
命令说明:
-
单独使用nohup运行程序: // nohup ./test > rnu.log - 结果默认会输出到`nohup.out`(会发生一部分输出到rnu.log,另一部分输出到nohup.out) - 输入`Ctrl + C`,程序关闭 - 关闭终端,程序继续执行
-
单独使用&运行程序: // ./a.out > rnu.log & - 结果会输出到指定文件rnu.log(若未指定则输出到终端) - 输入`Ctrl + C`,程序继续执行 - 关闭终端,程序关闭
-
2>&1 2> //表示把标准错误(stderr)重定向,标准输出(stdout)是1。 >&1 //重定向到标准输出 >&2 //重定向到标准错误 注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。 这里的 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出。
-
nohup ./test > rnu.log & - 结果默认会输出到`nohup.out`(会发生一部分输出到rnu.log,另一部分输出到nohup.out) - 输入`Ctrl + C`,程序继续执行 - 关闭终端,程序继续执行 - 只能执行kill -9进行关闭
-
nohup ./test > rnu.log 2>&1 & - 结果会输出到指定文件rnu.log - 输入`Ctrl + C`,程序继续执行 - 关闭终端,程序继续执行 - 只能执行kill -9进行关闭
-