springboot啟動腳本


 

 

#!/bin/sh
JAVA_HOME="/ulic1/jdk/jdk1.8.0_201/bin"
export JAVA_HOME
lsof -i:9010 |awk '{print $2}' | sed -n '2p' | xargs kill -9
nohup $JAVA_HOME/java -jar mwp-callback-1.0.0.jar 1>server.out 2>&1 &

## lsof -i:8089 為找到監聽8089的程序及對應程序的pid
## awk是行處理器 依次對每一行進行處理,然后輸出
## sed -n 是指定第幾行  sed -n '2p' 表示獲取結果的第2行
## “xargs kill -9” 中的xargs命令是用來把前面命令的輸出結果(這里是PID)作為“kill -9”命令的參數,並執行該命令。

  

 

 

 

 

1.netstat -anp |grep 端口號
監控狀態為LISTEN表示已經被占用

2.netstat -nultp(此處不用加端口號)
該命令是查看當前所有已經使用的端口情況


我們使用>或者>>對輸出進行重定向。
符號的左邊表示文件描述符,如果沒有的話表示1,也就是標准輸出,符號的右邊可以是一個文件,也可以是一個輸出設備
。當使用>時,會判斷右邊的文件存不存在,如果存在的話就先刪除,然后創建一個新的文件,不存在的話則直接創建。
但是當使用>>進行追加時,則不會刪除原來已經存在的文件。

 

 

標准輸入(standard input) 0 從鍵盤獲得輸入 /proc/self/fd/0
標准輸出(standard output) 1 輸出到屏幕(即控制台) /proc/self/fd/1
錯誤輸出(error output) 2 輸出到屏幕(即控制台) /proc/self/fd/2
1. >/dev/null
這條命令的作用是將標准輸出1重定向到/dev/null中。
/dev/null代表linux的空設備文件,所有往這個文件里面寫入的內容都會丟失,俗稱“黑洞”。
那么執行了>/dev/null之后,標准輸出就會不再存在,沒有任何地方能夠找到輸出的內容。

2. 2>&1
這條命令用到了重定向綁定,采用&可以將兩個輸出綁定在一起。
這條命令的作用是錯誤輸出將和標准輸出同用一個文件描述符,說人話就是錯誤輸出將會和標准輸出輸出到同一個地方。


>/dev/null 2>&1 VS 2>&1 >/dev/null

乍眼看這兩條命令貌似是等同的,但其實大為不同。
剛才提到了,linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令。
那么我們同樣從左到右地來分析2>&1 >/dev/null:

>/dev/null 2>&1 VS >/dev/null 2>/dev/nul


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM