背景:
專案裝置端需要執行jar包程式與服務端進行socket連線併傳送資料,每次啟動程式時,都需要在Linux終端輸入啟動jar包的命令,比較繁瑣,隨之嘗試將啟動jar包的命令寫入shell指令碼檔案中,實現操作shell指令碼啟動jar包程式的功能。
編寫的socdev.sh指令碼檔案中命令如下:
1 #啟動命令所在目錄 2 HOME=`/home/pi/Desktop/java` 3 4 #獲取mac地址(唯一的) 5 mac=`ifconfig | grep eth0 | awk `{print $5}`` 6 7 start(){ 8 #進入命令所在目錄 9 cd $HOME 10 nohup sudo java -jar ufoCatcher-catcher-1.0-SNAPSHOT.jar $mac wss://ip:port/catcher PULL_DOWN & 11 } 12 13 stop(){ 14 #kill 掉所有java程式 15 ps -ef | grep java | grep -v grep |awk `{print $2}` | xargs sudo kill -9 16 } 17 18 case $1 in 19 start) 20 start 21 ;; 22 stop) 23 stop 24 ;; 25 restart) 26 $0 stop 27 sleep 2 28 $0 start 29 ;; 30 *) 31 echo "Usage: {start|stop|restart}" 32 ;; 33 esac 34 35 exit 0
啟動jar包程式:./socdev.sh start
終止jar包程式:./socdev.sh stop