启动jar包 nohup: 忽略输入并把输出追加到'nohup.out'
时间: 2023-09-10 16:09:02 浏览: 41
你可以使用以下命令来启动一个jar包,并将输出追加到'nohup.out'文件中:
```shell
nohup java -jar your_jar_file.jar > nohup.out 2>&1 &
```
这将使用'nohup'命令运行一个java jar包,并将标准输出和错误输出都重定向到'nohup.out'文件中。添加`2>&1`是为了将标准错误输出也重定向到相同的文件。
请注意,上述命令中的"your_jar_file.jar"应替换为你实际的jar文件名。运行命令后,你可以在当前目录下找到名为'nohup.out'的文件,其中包含了jar包的输出信息。
相关问题
centerOS7.6 启动java项目的时候 使用 nohup java -jar xxx.jar &出现报错nohup: 忽略输入并将输出附加到'nohup.out'
这个报错是因为你使用了nohup命令来启动Java项目,但是nohup命令默认会把所有输出信息都追加到当前目录下的nohup.out文件中。这种情况下,nohup命令会忽略标准输入,而把标准输出和标准错误输出都追加到nohup.out文件中。
如果你并不需要保存输出信息,可以使用/dev/null将标准输出和标准错误输出都重定向到空设备,例如:
```
nohup java -jar xxx.jar >/dev/null 2>&1 &
```
这样就不会有输出信息被保存了。如果你需要保存输出信息,那么你可以使用以下命令来查看nohup.out文件的内容:
```
tail -f nohup.out
```
这样就可以实时查看nohup.out文件的内容了。
nohup: appending output to 'nohup.out' nohup: appending output to 'nohup.out'
### nohup 命令行为解析
当使用 `nohup` 命令运行程序时,默认情况下,如果未指定其他输出位置,则会忽略输入并将标准输出和标准错误输出追加到当前目录下的 `nohup.out` 文件中[^1]。
#### 默认情况下的输出重定向
对于简单的命令执行:
```bash
nohup ./test.sh
```
这会导致所有来自脚本的标准输出和标准错误都被写入名为 `nohup.out` 的文件里。如果没有权限创建此文件或遇到其他IO问题,可能会收到相应的警告信息。
#### 自定义输出路径
可以改变默认的日志保存地点,通过显式的重定向操作符来实现这一点:
```bash
nohup ./test.sh > a.txt
```
这里只改变了标准输出的方向,而标准错误依旧会被发送给终端显示出来;因此可能还会看到有关无法读取输入之类的提示消息。要同时控制两者,需进一步调整命令结构。
#### 同步管理标准输出与标准错误
为了确保所有的输出都按照预期的方式处理,应该这样组合使用重定向符号:
```bash
nohup ./test.sh > a.txt 2>&1 &
```
上述指令不仅指定了新的目标文件用于存储正常输出(`> a.txt`),还利用了特殊的语法让错误信息跟随其后(`2>&1`),并且加上后台进程标志(&),使得整个过程可以在用户退出shell之后继续独立工作而不受影响。
#### 完全抑制日志生成
有时出于性能考虑或是为了避免不必要的大容量日志积累,可以选择完全丢弃这些数据流。这时可借助 `/dev/null` 这一特殊设备节点作为接收者——它就像一个吞噬一切的数据黑洞一样不会留下任何痕迹:
```bash
nohup java -jar yourapp.jar >/dev/null 2>&1 &
```
这条语句有效地阻止了任何形式的外部可见反馈产生,无论是成功的还是失败的结果都不会被记录下来[^3]。
阅读全文