运行java应用sh脚本

 stop java应用:

#!/bin/sh
PID=$(cat /root/test/test.pid)
kill -9 $PID

start java应用:

#!/bin/sh
java -jar -Xms128m -Xmx256m thirdparty-test-0.0.1-SNAPSHOT.jar &  #注意:必须有&让其后台执行,否则没有pid生成
echo $! > /root/test/test.pid   # 将jar包启动对应的pid写入文件中,为停止时提供pid

指定jvm参数start java应用:

#!/bin/sh
java -jar -Xms2048m -Xmx2048m -Xmn1024m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC  thirdparty-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=prd,redisprd,dbprd &
echo $! > /root/security/security.pid

高端一点Jenkins执行脚本:

curl -X POST 'http://167.167.167.167:6060/publish/saveSnapshot?env=test'
cd /var/lib/jenkins/workspace/myapp-auth-test/auth
docker build -t 167.167.1.12:9876/myapp/myapp-auth-test:${BUILD_NUMBER} -f Dockerfile-test .
docker push 167.167.1.12:9876/myapp/myapp-auth-test:${BUILD_NUMBER}
docker rmi 167.167.1.12:9876/myapp/myapp-auth-test:${BUILD_NUMBER}
sed -i "s|image: 10.*$|image: 167.167.1.12:9876/myapp/myapp-auth-test:${BUILD_NUMBER}|" /root/myapp/myapp-auth-test.yaml
curl -X POST -H "content-type=form-data;charset=UTF-8" -F "content=$(cat /var/lib/jenkins/workspace/myapp-auth-test/gateway/src/config/auth-test.yml)" "http://11.167.19.17:8848/nacos/v1/cs/configs?dataId=auth-test.yml&group=DEFAULT_GROUP&username=nacos&password=nacos"
kubectl apply -f /root/myapp/myapp-auth-test.yaml
find /var/lib/jenkins/workspace/myapp-auth-test -name "target" | xargs rm -rf
curl -X POST 'http://167.167.167.167:6060/publish/saveRecord' --header 'Content-Type: application/json' --data "{\"env\":\"test\",\"model\":\"auth\",\"version\":${BUILD_NUMBER}}"

 

 

 

package generconfig; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; import org.springframework.context.support.GenericXmlApplicationContext; import com.pactera.service.schedule.ThreadReadPath; import com.pactera.util.CommTool; /*打包用File->Export->runnable JAR File Export Launch选择对应的类 Export destination 选择地址 Library handling:Copy required */ public class SMSThreadSender { public static void main(String[] args) { if(args.length==0) { System.out.println("短信服务开启,开始加载Spring配置。"); GenericXmlApplicationContext context = new GenericXmlApplicationContext(); context.setValidating(false); context.load("classpath:sysconfig/applicationContext.xml"); context.refresh(); System.out.println("开整·~~~~"); CommTool.smsthreadisruning=true; ThreadReadPath thread = new ThreadReadPath(); thread.smsname="sms"+CommTool.threadid; Thread t1 = new Thread(thread); t1.setName("sms"); t1.start(); System.out.println("已经启动"); } if(args.length==1) { String pfile=args[0]; System.out.println("短信服务开启,开始加载Spring配置。"+pfile); GenericXmlApplicationContext context = new GenericXmlApplicationContext(); context.setValidating(false); context.load(pfile); // context.load("classpath:sysconfig/applicationContext.xml"); context.refresh(); CommTool.smsth
### 编写用于启动Java应用程序的Shell脚本 为了简化Java应用的启动过程并提高效率,可以通过编写Shell脚本来实现自动化操作。下面是一个典型的Shell脚本实例,该脚本能够启动一个打包为JAR文件的Java程序。 #### 创建Shell脚本文件 首先创建一个新的Shell脚本文件,命名为`start_java_app.sh`: ```bash #!/bin/bash # 定义变量保存JAR路径和其他配置参数 APP_NAME="my-java-app" JAR_PATH="/path/to/your/application.jar" echo "Starting $APP_NAME..." # 使用nohup使进程在退出终端之后继续运行,并将标准输出重定向到日志文件 nohup java -jar ${JAR_PATH} > /dev/null 2>&1 & echo "$APP_NAME started." ``` 此段代码定义了一个名为`$APP_NAME`的应用名称和指向目标JAR文件位置的路径`${JAR_PATH}`[^4]。接着利用`nohup`命令让Java应用以后台模式启动,即使关闭SSH连接也不会影响其正常工作;同时把所有的控制台输出都丢弃掉(`> /dev/null`)或将它们记录下来(如果希望保留日志的话)[^2]。 #### 设置可执行权限 完成上述脚本编辑后,还需要赋予它相应的执行权限以便可以直接作为命令来调用: ```bash chmod +x start_java_app.sh ``` 这样就完成了基本的Java应用启动脚本设置。每次想要启动这个特定版本的应用时只需简单输入./start_java_app.sh即可[^1]。 #### 添加更多功能 对于更复杂的需求,比如传递不同环境下的属性给Java虚拟机(JVM),可以在原有基础上进一步扩展脚本的功能,例如加入内存分配选项(-Xms,-Xmx)或是指定额外类库的位置等。 ```bash JAVA_OPTS="-Xms512m -Xmx1024m -Dfile.encoding=UTF-8" nohup java $JAVA_OPTS -jar ${JAR_PATH} >> app.log 2>&1 & ``` 这里增加了`$JAVA_OPTS`变量用来存储传入JVM的各种参数,同时也改变了日志处理方式——不再忽略所有输出而是追加到了名为app.log的日志文件里[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值