26.linix脚本启动java程序
生活随笔
收集整理的這篇文章主要介紹了
26.linix脚本启动java程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)linux腳本文件:
1 #!/bin/bash 2 3 export JAVA_HOME=/opt/jdk1.6.0_21 4 export PATH=$JAVA_HOME/bin:$PATH 5 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 6 baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd) 7 LIB_CP=:""$baseDirForScriptSelf""/WEB-INF/classes 8 flist=$baseDirForScriptSelf""/WEB-INF/lib/*.jar; 9 for i in $flist; 10 do 11 LIB_CP=$LIB_CP":"$i; 12 done 13 export LIB_CP 14 15 CP=${CLASSPATH}${LIB_CP} 16 17 java -cp ${CP} -Xms1024m -Xmx1024m com.jd.sns.dt.main.DtMainDtMain當中只要有main函數就行
(2)定時執行
如果程序需要定時啟動,可以利用linux本身的定時腳本來做。在命令端輸入crontab -e,加入定時調用,每5分鐘執行一次。本情況只適用于實時性不高的情景,如果實時性要求高,需要使用線程輪詢。
???? */5 * * * * /opt/consumegradesql/run_add.sh
如果需要定時執行,要考慮是否加入防止重復執行的相關代碼,可以采用綁定端口的方法,例:
在程序代碼開始時調用:SocketUtil.bindPort();
1 package com.jd.sns.dc.common; 2 3 import java.io.IOException; 4 import java.net.ServerSocket; 5 6 import org.slf4j.Logger; 7 import org.slf4j.LoggerFactory; 8 9 public class SocketUtil { 10 11 protected final static Logger log = LoggerFactory.getLogger(SocketUtil.class); 12 private static ServerSocket serverSocket; 13 14 public static void bindPort() { 15 log.info("port:" + DcConst.port); 16 try { 17 // 綁定端口,若綁定失敗則退出程序 18 SocketUtil.serverSocket = new ServerSocket(DcConst.port); 19 } catch (Exception e) { 20 log.error("Bind port:" + DcConst.port + " error!", e); 21 System.exit(1); 22 } 23 } 24 25 public static void closeSocket() { 26 try { 27 SocketUtil.serverSocket.close(); 28 } catch (IOException e) { 29 log.error("close socket error", e); 30 } 31 } 32 33 }附:linux端口號
1--1023 系統保留,只能由root用戶使用
1024---4999 由客戶端程序自由分配
5000---65535 由服務器端程序自由分配
?
注:本示例來源于datacheck-final
轉載于:https://www.cnblogs.com/guanpanpan/p/3414548.html
總結
以上是生活随笔為你收集整理的26.linix脚本启动java程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP array_merge() 函数
- 下一篇: android 安装环境及入门