nohup java -jar XXX.jar >nohup.out 2>&1 &
解释一下2>&1的含义
概括:上面的调用表明将java -jar的输出重定向到nohup.out文件中,同时将标准错误也重定向到nohup.out文件中。
每个程序在运行后,都会至少打开三个文件描述符,分别是0:标准输入;1:标准输出;2:标准错误。
这个java进程pid 28169

cd /proc/28169/fd 
ll
l-wx------ 1 root root 64 Feb 25 14:14 0 -> /dev/null
l-wx------ 1 root root 64 Feb 25 14:14 1 -> /opt/nohup.out
l-wx------ 1 root root 64 Feb 25 13:57 2 -> /opt/nohup.out
lr-x------ 1 root root 64 Feb 25 14:14 5 -> /opt/yqshop-admin-api-0.0.1-SNAPSHOT.jar

2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没有&时,
1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符。