<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # swoole服務器如何做到無人值守100%可用 在某些情況下,如系統負載過大swoole無法申請到內存而掛掉、swoole底層發生段錯誤、Server占用內存過大被內核Kill,或者被某些程序誤殺。那swoole-server將無法提供服務,導致業務中斷,公司收入出現損失。 有一個非常有效并且在BAT等大型公司常用的方案是crontab重啟監控。 原理是每1分鐘執行一次shell腳本,檢測server的master進程是否存活,如果存在則跳過。如果發現主進程已經掛掉,則執行restart邏輯,先kill掉所有殘留的子進程,然后重新啟動Server。 > 使用下面的腳本需要將Server程序的進程名稱設置為master,如 `cli_set_process_title("php server.php: master")` 如果在系統的crontab中加入: ```shell */1 * * * * /data/script/check_server.sh ``` /data/script/check_server.sh: ```shell count=`ps -fe |grep "server.php" | grep -v "grep" | grep "master" | wc -l` echo $count if [ $count -lt 1 ]; then ps -eaf |grep "server.php" | grep -v "grep"| awk '{print $2}'|xargs kill -9 sleep 2 ulimit -c unlimited /usr/local/bin/php /data/webroot/server.php echo "restart"; echo $(date +%Y-%m-%d_%H:%M:%S) >/data/log/restart.log fi ``` 可以改進的地方 ---- * 可以通過netstat -lnp 檢測端口是否在監聽,如果未在監聽,則執行restart * 通過一個check.php發送一段帶有邏輯的請求,試探服務器是否可以正常工作,如果無法工作,執行restart * 使用supervisor監控進程的工具 * 如果在Docker容器中使用,可以在`docker run`時增加參數`--restart=always`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看