回覆列表
  • 1 # IT大叔Cc

    回答本行業問題

    Linux下服務一般是透過shell指令碼來啟動程式或者服務,在shell指令碼啟動時,可以使用命令來查詢,本服務或程式埠是否被其他程式佔用,可以使用netstat命令。

    netstat

    比如我們查詢80埠是否被佔用,命令如下:

    [root@api ~]# netstat -anp|grep 80

    從上面可以看出80埠已經被nginx監聽。

    netstat具體的引數如下,【-a】顯示所有的socket連線,【-n】不使用域名,而使用ip顯示,【-p】顯示監聽此socket的程序名稱,【grep】是過濾包含80字元的匹配項。

    簡單函式封裝

    我們在寫指令碼時儘量將經常使用的指令碼封裝成函式,以便其他程式也可以呼叫這個函式,如下面的指令碼,實現埠的查詢函式【入參1=埠】:

    我們用幾個埠測試一下,可以看出上面我的埠被nginx佔用

    良好的編寫程式碼習慣

    在linux程式設計寫程式時,儘量不要將監聽的埠、IP、網絡卡介面等可能會發生變化的引數,寫死到程式碼中,可以定義一個配置檔案,把經常變化的引數寫入配置檔案,在程式啟動或者呼叫時,載入配置檔案來讀取引數。

  • 中秋節和大豐收的關聯?
  • 我們是對方最愛的人是什麼歌?