解决 jar 启动 nohup: ignoring input and appending output to 'nohup.out'
时间: 2025-01-13 15:52:15 浏览: 103
### 解决方案
为了防止 `nohup` 启动的 Java 应用程序生成 `nohup.out` 文件,可以通过将标准输出和标准错误重定向到 `/dev/null` 来实现。这样所有的输出都会被丢弃,不会创建 `nohup.out` 文件。
```bash
nohup java -jar your_jar_file.jar >/dev/null 2>&1 &
```
如果希望将输出保存到特定的日志文件而不是默认的 `nohup.out` 文件,可以将输出重定向到自定义路径:
```bash
nohup java -jar your_jar_file.jar > /path/to/logs/output.log 2>&1 &
```
对于更复杂的日志管理需求,比如按日期分割日志文件,可以使用如下命令结构来动态命名日志文件:
```bash
nohup java -jar your_jar_file.jar > /path/to/logs/$(date "+%Y-%m")/output_$(date "+%Y-%m-%d").log 2>&1 &
```
上述命令会根据当前时间戳自动创建相应月份的子目录,并在其中存储当天的日志记录[^2]。
相关问题
nohup: appending output to ‘nohup.out’ nohup: ignoring input and appending output to ‘nohup.out’
nohup命令是在Linux中用于在后台执行命令,并将输出信息重定向到nohup.out文件中的命令。当你在终端中使用nohup命令时,会出现"nohup: ignoring input and appending output to ‘nohup.out’"的错误信息,表示命令会忽略输入并将输出信息添加到nohup.out文件中。此外,你还提到了另一个错误信息"nohup: ignoring input and redirecting stderr to stdout",这表示命令会忽略输入并将标准错误输出重定向到标准输出。
所以,当你在终端看到"nohup: appending output to ‘nohup.out’ nohup: ignoring input and appending output to ‘nohup.out’"的输出时,说明nohup命令执行成功,命令将输出信息追加到nohup.out文件中并忽略输入。
运行jar时 nohup: ignoring input and appending output to 'nohup.out'
### 解决方案
为了避免 `nohup` 命令默认创建 `nohup.out` 文件,可以采取以下几种方法:
#### 方法一:重定向输出到其他文件
通过指定不同的日志文件来替代默认的 `nohup.out` 文件。这可以通过修改命令中的输出路径实现。
```bash
nohup java -jar shop-admin-s.jar > custom_log_file.log &
```
这种方法允许将标准输出和错误输出重定向至自定义的日志文件中[^4]。
#### 方法二:完全丢弃输出
如果不需要保存任何输出信息,则可以选择将其丢弃到 `/dev/null` 中。
```bash
nohup java -jar shop-admin-s.jar >/dev/null 2>&1 &
```
这条命令不仅会丢弃标准输出还会同时处理标准错误流,确保没有任何数据写入磁盘。
#### 方法三:配置应用程序内部日志记录机制
对于 Java 应用程序而言,通常已经内置了完善的日志管理系统(如 Logback 或 Log4j)。因此可以在应用层面调整日志级别或更改日志存储位置,从而减少甚至消除对外部日志文件的需求。
例如,在 Spring Boot 项目中可通过设置 application.properties 来控制日志行为:
```properties
logging.file.name=./app-logfile.log
logging.level.root=WARN
```
这种方式能够有效管理日志并防止其无限制增长[^3]。
阅读全文
相关推荐














