Linux 自启动 java程序

这篇博客讲述了作者在小公司中如何解决Linux自启动Java程序的问题。通过学习《鸟哥的Linux私房菜》,作者了解到在Linux的/etc/rc.d/rc.local文件中可以添加自定义启动脚本。于是,作者编写了一个名为smssend.sh的shell脚本,并将其路径添加到rc.local文件中,成功实现了Java程序的自启动。

Linux 自启动java程序

      一进公司就接到 项目, 适应时间都没有。 小公司,开发部署全是一个人完成。碰到了 Linux自启动java程序,头痛了一天

找项目经理要了一本鸟哥的Linux私房菜,学习了一下,才把问题解了

在linux下面/etc/rc.d目录下面的都是开机启动的服务或者程序,启动rc.local用于用户自定义的启动程序或者服务。为了,编辑整洁,先给需要启动的java程序,写个shell脚本

#!/bin/bash
#program
#    This program is used to startup SmsSentTask.jar
#
export JAVA_HOME=/usr/java/jdk1.6.0_22
export JRE=/usr/java/jdk1.6.0_22/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE/lib:.
export PATH=$PATH:$JAVA_HOME/bin/:$JRE/bin
java -jar /root/tas100/smsSendTask_fat.jar >>/root/tas100/smsSend22.log

在命令行,输入 vi /etc/rc.d/rc.local, 然后添加shell脚本, 路径要根据自己的实际路径要设定

/root/tas100/smssend.sh

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

/root/tas100/smssend.sh


大功告成, 哈哈哈

 

 

### 启动 Java 程序的方法 在 Linux 环境下启动 Java 程序可以通过多种方式实现,具体取决于需求场景和系统的配置情况。以下是几种常见的方法及其注意事项。 #### 方法一:通过命令行直接运行 可以直接使用 `java` 命令来运行 `.jar` 文件或其他类型的 Java 应用程序。这种方式适合临时测试或手动操作。 ```bash java -jar your_program.jar ``` 如果希望将日志输出到文件并以后台模式运行,则可以结合 `nohup` 使用[^3]: ```bash nohup java -jar your_program.jar > output.log & ``` #### 方法二:编写 Shell 脚本来封装启动逻辑 对于复杂的 Java 程序,通常会将其启动过程封装在一个 Shell 脚本中以便于管理和维护。例如,创建一个名为 `start_java.sh` 的脚本[^2]: ```bash #!/bin/bash # 设置必要的环境变量 export JAVA_HOME=/path/to/your/jdk export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin # 启动 Java 程序并将日志记录到指定文件 java -jar /path/to/your_program.jar >> /path/to/logfile.log 2>&1 & ``` 保存该脚本后赋予其可执行权限: ```bash chmod +x start_java.sh ``` 之后即可通过运行此脚本启动 Java 程序。 #### 方法三:设置为系统服务(Systemd 或 SysVinit) 为了让 Java 程序随操作系统一起自动启动,推荐将其注册为系统服务。这里以 Systemd 配置为例说明: 1. 创建一个新的 service 文件 `/etc/systemd/system/myjavaprogram.service`,内容如下: ```ini [Unit] Description=My Java Program Service After=network.target [Service] User=root ExecStart=/usr/bin/java -jar /path/to/your_program.jar SuccessExitStatus=143 Restart=on-failure StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target ``` 2. 刷新 systemd 并启用服务: ```bash systemctl daemon-reload systemctl enable myjavaprogram.service systemctl start myjavaprogram.service ``` 这种方法不仅能够确保程序开机自启,还提供了更强大的管理功能,比如状态监控和服务重启机制[^4]。 #### 注意事项 - 如果遇到因未加载 JDK/JRE 导致的错误,请确认是否已在全局范围内设置了正确的环境变量,或者像上述 shell 脚本那样显式声明它们[^1]。 - 对于长期运行的应用来说,建议采用后台进程的方式,并妥善处理标准输入输出流以防阻塞。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值