java Firefox wordpress shell mysql Python google 开源 Ubuntu linux Windows 程序员 apache php Android centos HTML5 linux命令 nginx 微软

配置inetd

 inetd服務是Linux開機初始化由rc程序啟動的一項守護進程,它通過監聽端口來啟動各項服務,流程 tcp/udp服務---->(5000端口來信)---->inted發現有來信----->啟動相應的服務程序, 也就是說inted服務器充當一個功能就是創建socket服務端的前半段,即創建socket---->bind(端口)---->監聽---->accept(接受信號),當來一個此端口的請求,他會fork+exec來執行相對應的服務程序.下面通過一個小例子還說明inetd服務的流程

  tip: 這幾個參數是用tab鍵分開的,這個inetd.conf文件是inetd服務器的配置文件,配置好了之後需要重啟一下才能生效

  首先開機啟動的時候,rc啟動inetd服務,此服務會讀取inetd.conf文件中的每一行來進行監聽,比如這一行,他會讀取第一個參數 ma,發現是ma服務,然後它會在 /etc/service文件中找 ma服務所對應的端口,所以我們事先也要在/etc/service文件中填入一行 ma    6234/tcp

  接著有讀取了 第二第三個參數, 之後創建socket,bind,listen, accept,第四個參數的意思就是創建子進程後父進程不用等待直接可以接受此端口接受到的下一個命令

  所以 accept 之後就是fork+exec,其中 exec中的啟動函數是第五個參數/home/human/bb 名字叫bb的進程,第六個參數xiao不清楚,沒有試驗出來...

  假設在系統中有10個請求服務端,然後就會創建10個接受進程來接受服務,這樣系統就多了10個進程,那麽如果沒有請求來的話這10個進程還在掛起狀態,嚴重的浪費了系統的資源, 所以人們就想用一個進程來做監聽,所以就出來了個inetd服務器的東西,就是說它讀取/etc/inetd.conf文件讀取10個進程的服務項,然後創建socket等等,這樣系統中只是一個進程在掛起,來請求時,就調用相應的任務進程即可,這樣節省了系統的資源

延伸阅读

  • 抱歉,暂无相关内容!

评论