總控節點防癱瘓

來源:互聯網
上載者:User

初學linux開發,總結下。若有錯誤,敬請指正,謝謝。

1.主備模式

配置兩個服務進程,一個主,另一個備,主和備都開啟服務。用戶端把主和備的地址都配上,如果發現往主服務進程發送請求,connect不到,推測主服務進程可能癱瘓,就往備用服務進程發送請求。對於這種方式,筆者尚未實踐過。只停留在理論階段。

缺點需要手動修複主服務進程。

2. fork + waitpid

while (1) {        pid_t pid;        if((pid = fork()) < 0) {            perror("fork:");        } else if (pid == 0) {            printf("reboot SysCtrlNode\n");            execl("./SysCtrlNode", "./SysCtrlNode", "NULL");            perror("execlv:");            exit(1);        } else if (pid > 0) {            waitpid(pid, NULL, 0);        }    }

筆者自己寫了個小項目就使用到了此種方式。監控進程作為父進程,一旦wait到子進程結束,立即fork出子進程,execl服務進程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.