linux 启动 springboot

本文介绍如何使用nohup命令让Java项目持久运行,并通过system.log文件记录项目日志。此外,还介绍了如何查找并终止特定的Java进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你的项目需要永久的运行的时候,就需要使用下面的方法
nohup java -jar xxx.jar > system.log 2>&1 &
运行命令后,在同级目录下会出现system.log文件,这个文件就项目的日志文件。
使用命令:ps -a可以查看Java程序运行的进程号,用于停止程序,
不过当程序有好几个的时候,用命令:ps -ef|grep java这个命令会将搜索Java相关的所以进程号,
根据jar包名称找到需要停止的进程号,使用命令:kill -9 11759杀死进程,11759是进程号。
(PS:杀死进程时一定要注意不要看错了进程号,以免杀错!!)

### 如何在 Linux 环境下启动 Spring Boot 应用程序时设置日志文件 为了实现这一目标,可以按照以下方法操作: #### 1. 配置 Log4j2 替代默认的日志框架 Spring Boot 默认使用 `logback` 来处理日志记录功能。如果希望切换到 `Log4j2`,则需要先排除掉默认的 `logback` 日志依赖项,并引入 `Log4j2` 的相关依赖。 以下是 Maven 中的相关配置: ```xml <!-- 移除 logback --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加 Log4j2 支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` 通过上述方式即可完成从 `logback` 到 `Log4j2` 的迁移[^1]。 --- #### 2. 创建 Log4j2 配置文件 为了让应用能够正确写入日志至指定文件,在项目的资源目录 (`src/main/resources`) 下创建名为 `log4j2.xml` 或者 `log4j2.properties` 的配置文件。 下面是一个典型的 XML 格式的 `log4j2.xml` 文件示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <!-- 定义控制台输出 --> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> </Console> <!-- 定义文件输出 --> <File name="LogFile" fileName="/var/log/myapp.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> </File> </Appenders> <!-- 设置根日志级别以及附加器 --> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> <AppenderRef ref="LogFile"/> </Root> </Loggers> </Configuration> ``` 此配置会将日志同时打印到控制台和 `/var/log/myapp.log` 文件中。 注意:确保运行该应用程序的用户具有对所选路径(如上例中的 `/var/log/`)的读写权限。 --- #### 3. 使用命令行参数覆盖默认配置 当部署于生产环境或者测试环境中时,可能希望通过外部化的方式调整某些属性而无需修改源码或重新打包项目。可以通过 JVM 参数来动态改变日志位置或其他行为。 例如,假设我们想让日志存储在一个特定的位置而不是固定编码好的地方,则可以在启动脚本里加入如下选项: ```bash java -Dlog.path=/custom/path/to/logs \ -jar my-springboot-app.jar ``` 接着更新之前的 `log4j2.xml` ,利用 `${sys:}` 查找系统变量作为实际值填充进去: ```xml <File name="CustomLogFile" fileName="${sys:log.path}/myapp.log"> ... </File> ``` 这样就实现了灵活设定不同场景下的日志保存地址。 --- #### 4. 自定义 SpringApplication 启动逻辑 除了以上提到的技术细节外,还可以进一步增强灵活性,比如禁用 Banner 显示、加载额外 Profile 等等。这里给出一个简单的例子展示如何定制化 `SpringApplication` 实例的行为: ```java package com.example.demo; import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(DemoApplication.class); app.setBannerMode(Banner.Mode.OFF); // 关闭 banner 输出 // 可以在此处添加更多个性化初始化代码... app.run(args); } } ``` 这段代码展示了如何手动构建 `SpringApplication` 对象以便更好地掌控其生命周期事件[^2]。 --- ### 总结 综上所述,要在 Linux 平台上成功配置并启用针对 Spring Boot 应用的日志记录机制,需经历三个主要阶段——替换内置日志引擎为 Log4j2;精心设计专属的日志策略文档(log configuration files),最后考虑借助环境变量等方式赋予更大的适应能力给整个解决方案架构体系结构之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值