先写下最终版

nobup java -jar  count.jar >> count.txt 2>&1 &

>>是追加输出信息到count.txt
2>&1是将标准错误重定向到标准输出

java -jar命令在退出帐户/关闭终端后退出
用springboot 写了一个定时任务,好不容易测试好了放到服务器上等着一天启动一次,结果过几天再看发现被关闭了。后来想了下不是人为关闭的,是关闭shell的时候这个进程就终止了。所以需要让这个命令后台运行不受退出帐户/关闭终端的影响。
除了java -jar ,还有其他运行中按ctrl +c就会退出的其他命令。可以使用nohup运行
nohup 命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

1. 输入输出重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

  1. 输入重定向中用到的符号及其作用

符号

作用

命令 < 文件

将文件作为命令的标准输入

命令 << 分界符

从标准输入中读入,直到遇见分界符才停止

命令 < 文件1 > 文件2

将文件1作为命令的标准输入并将标准输出到文件2

  1. 输出重定向中用到的符号及其作用

符号

作用

命令 > 文件

将标准输出重定向到一个文件中(清空原有文件的数据)

命令 2> 文件

将错误输出重定向到一个文件中(清空原有文件的数据)

命令 >> 文件

将标准输出重定向到一个文件中(追加到原有内容的后面)

命令 2>> 文件

将错误输出重定向到一个文件中(追加到原有内容的后面)

命令 >> 文件 2>&1 或命令 &>> 文件

将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

对于重定向中的标准输出模式,可以省略文件描述符1不写,而错误输出模式的文件描述符2是必须要写的。

如果不加2>&1,命令的错误输出不会放到文件count.txt中,直接打印到控制台。

nohup无法运行命令 java nohup启动java_nohup无法运行命令 java