<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      容器中用shell腳本啟動如何優(yōu)雅關閉(傳送kill SIGTERM信號)

      場景1

      CMD ["java", "-jar", "app.jar"]

      這時候java程序的PID=1也就是容器的主進程

      執(zhí)行docker stop <container> 也就等于 kill -15 1,這時候只要java程序能夠處理SIGTERM信號即可

      場景2

      CMD ["/home/default/start.sh"]

      start.sh

      #!/bin/bash
      echo "[INFO] 開始運行"
      java -jar app.jar

      很多時候我們一般會用一個shell腳本作為容器的主進程,這樣啟動邏輯就很靈活

      執(zhí)行docker stop <container> 也就等于 kill -15 1,shell腳本收到SIGTERM信號后并不會把信號傳給它的子進程,也就是說java程序不會做任何動作,直到寬限期到期會強制關閉容器等于kill -9

      docker 使用docker stop -t 參數(shù)指定寬限期默認是10秒,kubernetes里面使用 terminationGracePeriodSeconds: 30

      方法1

      那么shell如何傳遞SIGTERM信號給它的子進程?

      #!/bin/bash
      echo "[INFO] 開始運行"
      java -jar app.jar &
      pid="$!"
      
      _kill() {
        echo "[INFO] Receive sigterm"
        kill $pid
        wait $pid
        exit 143
      }
      trap _kill SIGTERM
      wait

       

      步驟是把java程序后臺啟動以獲得它的PID,最后一行加入wait命令防止shell退出,trap命令捕捉SIGTERM信號并執(zhí)行一個命令

      方法2

      假設shell腳本里面只需求啟動一個子程序,其實有更簡潔的辦法

      #!/bin/bash
      echo "[INFO] 開始運行"
      exec java -jar app.jar

      exec特性是不產生新的子進程而是當前shell進程,因此exec之后的命令將不會執(zhí)行

      方法3

      docker run --init 也就是加入 --init參數(shù)  https://docs.docker.com/engine/reference/run/

      或者在鏡像里面加入tini  https://github.com/krallin/tini

      ENV TINI_VERSION v0.19.0
      ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
      RUN chmod +x /tini
      ENTRYPOINT ["/tini", "--"]
      CMD ["/home/default/start.sh"]

      經過測試tini更多關心的還是僵尸進程的清理,對于子進程信號傳遞(特別是多級子進程)默認情況下支持的并不好,使用tini最好配合exec命令

       

      posted @ 2020-05-22 11:14  三木燕  閱讀(3076)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产果冻豆传媒麻婆精东| 精品人妻中文无码av在线 | 日韩激情一区二区三区| 精品少妇后入一区二区三区| 日韩av一区二区三区不卡| 女同性恋一区二区三区视频| 国产成人精品三级麻豆| 亚洲一区精品视频在线| 亚洲高清WWW色好看美女| 国产成人AV大片大片在线播放| 欧美肥妇毛多水多bbxx| 久久国产自偷自偷免费一区| 一区二区三区综合在线视频| 久久综合国产色美利坚| 欧美成人精品在线| 久久99日本免费国产精品| 一出一进一爽一粗一大视频| 国产精品美女一区二区三| 国产av一区二区亚洲精品| 成A人片亚洲日本久久| 色综合久久夜色精品国产| 国产精品成人久久电影| 无码人妻丰满熟妇啪啪| 色综合天天综合网天天看片| 成年女人片免费视频播放A| 欧美无人区码suv| 日韩精品无码去免费专区| 国产精品日韩精品日韩| 国产一区日韩二区欧美三区| 国产欧美日韩精品丝袜高跟鞋| 亚洲熟女乱综合一区二区三区| 亚洲国产中文字幕精品| 国产成人不卡一区二区| 亚洲色偷拍区另类无码专区| 国产精品无码av在线一区| 狠狠亚洲色一日本高清色| 鲜嫩高中生无套进入| 国产高清在线精品一本大道| 国产精品午夜福利合集| 熟女精品视频一区二区三区| 国产成人亚洲日韩欧美|