開發調試linux服務時幾個好用的進程和連接埠查詢命令組合和簡單指令碼(ps netstat awk grep)

來源:互聯網
上載者:User

標籤:linux   shell   awk   grep   服務   

這幾天在搭建flume服務並在其架構下開發,反覆調試輸入命令讓人不厭其煩,因此在這裡記錄一下自己找到的一些小技巧:

首先,把自己的應用程式做成一個service是一個很好的選擇,一個service就需要支援start 和 stop,start能啟動程式,stop能找到start所啟動的程式的進程並且關掉它。

可以直接根據/etc/init.d/下的服務指令碼來改,但我遇到了問題:因為那些系統服務指令碼都是基於start-stop-daemon命令,這個命令很強大,可以啟動一個可執行檔並且把進程PID,寫入指定的檔案裡,這樣在停止進程時可以直接讀取檔案來關掉進程。

但我用這個命令來啟動自己的程式時,程式啟動成功,但是PID檔案在無任何錯誤資訊的情況下就是沒法產生,測試了root許可權執行,也測試了各種寫入路徑(不需要高許可權的),統統不行,於是決定慢慢研究這個問題的同時,先用簡單的方法去解決我的需求。


啟動程式很簡單,作為服務,需要後台運行,假設你的可執行檔名叫做PROGRAM。

所以啟動就需要  :

nohup PROGRAM [args] &

要關閉就需要    :

#PROGRAM是進程名

PID = `pidof PROGRAM`if [ ! -z "$PID" ]; then     kill -15 $PID     fi


但是對於java或者python 程式,進程是java或者python,沒有可區分度,所以不能用"pidof"命令,那麼只能用"ps -ef"命令,用grep對進程資訊進行過濾,來找到合適的進程


而一台機器上可以有多個flume服務,每個服務可能就執行參數有一些區別,所以要用多個grep:

  PID=`ps -ef | grep java | grep flume | awk '{ print $2 }'`     if [ ! -z "$PID" ]; then     kill -15 $PID     fi

這裡用到了awk命令,取出了"ps"命令列印資訊的第二列PID的值。


這樣一個簡單服務的start和stop就完成了。


我還遇到另一個需求,就是檢查某連接埠的佔用情況,並且強制關閉佔用這個連接埠的進程:

# netstat -tlnpa | grep 44444tcp6       0      0 10.58.242.18:44444      :::*                    LISTEN      25049/java

連接埠查詢結果有如上格式,那麼我們可以根據這個格式編寫如下指令碼:

pinfo=`netstat -tlnpa | grep 44444`PID=`awk '{split("'$pinfo'", array, "/");print array[2]}' `if [ ! -z "$PID" ]; then     kill -15 $PID     fi

就搞定了。

深入挖掘awk 和 grep 還可以有很多用處,作為shell文本處理的利器,我這裡只是日常簡單的應用,希望對大家有協助。

開發調試linux服務時幾個好用的進程和連接埠查詢命令組合和簡單指令碼(ps netstat awk grep)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.