1. 程式人生 > >避免啟動container執行shell指令碼執行完成後docker退出

避免啟動container執行shell指令碼執行完成後docker退出

http://www.linuxdiyf.com/linux/28568.html

問題 最近在使用 Dockerfile 啟動容器,發現使用Dockerfile呼叫容器裡面的shell,當shell執行完成以後,docker會退出容器。 分析 Docker 在執行shell的時候,是在後臺執行的;因此,在shell執行完成以後,docker檢測到沒有前臺任務需要執行,便退出container. 解決方法 在shell指令碼的最後加上一個“永遠完成不了”的命令: # tail -f /dev/null 這樣當執行到這條命令的時候,shell便不會退出,container也不會退出。

相關推薦

避免啟動container執行shell指令碼執行完成docker退出

http://www.linuxdiyf.com/linux/28568.html 問題 最近在使用 Dockerfile 啟動容器,發現使用Dockerfile呼叫容器裡面的shell,當shell執行完成以後,docker會退出容器。 分析 Docker

jenkins自動部署中執行shell指令碼啟動tomcat,但是tomcat不啟動的問題

Jenkins會在構建完成後使用processTreeKiller殺掉了所有子程序,而且這是Jenkins的預設行為。其實回頭來看這個問題,就發現Jenkins的做法非常合理。當一次build異常結束,或被人終止時,必然需要結束所有這次build啟動的子程序。下面的link提供了更多細節,以及解決方法。htt

【轉】通過ionice和nice降低shell指令碼執行的優先順序

對於一些執行時會造成系統滿載的指令碼, 例如資料庫備份, 會影響當時其他服務的響應速度, 可以通過ionice和nice對其IO優先順序和CPU優先順序進行調整例如降低"/usr/local/bin/backup.sh"的IO優先順序, 讓其他程序順暢執行: /usr/bin/ionice -c2 -

使用crontab定時執行shell指令碼

原帖地址:http://blog.chinaunix.net/uid-429659-id-4510419.html 使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都執行 入門 # cronta

怎麼在後臺執行shell指令碼

後臺執行指令碼 執行指令碼test.sh:./test.sh 中斷指令碼test.sh:ctrl+c 在1的基礎上將執行中的test.sh,切換到後臺並暫停:ctrl+z 執行ctrl+z後,test.sh在後臺是暫停狀態(stopped),使用命令:bg number讓

[轉載] Linux export變數的生命週期和shell的生命週期相同,即shell指令碼執行完畢,相應的export變數便失效了

說說shell指令碼中的export 和 source,bash 小弟剛剛接觸linux,對linux上的很多東西都比較陌生,所以寫一寫部落格,當做自己工作的總結和技術的積累吧,也是鞭策自己不斷努力的去學習。 今天之所以起這個標題,把export,source ,bash這三個命令放在一起講

shell指令碼執行已有的其他指令碼檔案

工作中常遇到一些資料問題,需要各種指令碼去處理,各種先後順序,還要處理多個庫,還會遇到某個指令碼處理某個庫時報錯需要重新處理的問題,因此用一個shell把它們串起來就比較方便了 1.多個庫執行同一個指令碼 #/bin/bash city_array=('bj' 'sh' 'tj' )

shell指令碼執行sql檔案及語句

由於經常操作資料庫,遇到頻繁建表、加欄位、索引、修改資料等問題,大多是操作多個數據庫,sql檔案或語句不固定,最後選擇shell指令碼來執行 eg: 1.多庫建相同的表 #/bin/bash host='127.0.0.1' dbUser='root' dbPassword=

利用shell指令碼執行mongdb命令

用shell指令碼執行mongdb的renameCollection命令: 1、建立一個*.sh檔案 2、增加如下命令: #!/bin/bash mycol="test" mongo 127.0.0.1:27017/pica -u pica_user -p "[email 

Linux Eclipse 命令列(終端)啟動正常使用,sh 指令碼執行不能正常使用問題

原因還是執行環境問題,類似windows中的環境變數,如果windows中環境變數沒設定也不能直接敲java執行   第一鍾:   在執行的sh指令碼中新增 source /etc/profile 命令,讓指令碼在每次執行時,重新設定一遍環境變數 第二種:   在eclipse執行目錄下找

新手mac上執行shell指令碼常見問題

最近打算在mac使用shell來實現unity的自動打包功能,寫完指令碼信心滿滿結果剛一執行就報錯,通過參考網上的解決方案最終順利執行指令碼,以下總結和記錄第一次在mac機上執行shell檔案最可能遇到的兩個問題。 1.許可權問題 在終端執行sh檔案時報 -

關閉客戶端需要繼續執行shell指令碼的兩種方法

應用場景: 做資料分析時,遠端連線資料分析伺服器,可能需要執行很多指令碼,有時候斷網後,跑了半天指令碼需要重新跑,主要是為了解決這個問題總結了兩個小技巧。 乾貨: 解決方案一: 執行指令碼時如下方式執行: nohup sh *.sh 1>console_info

執行shell指令碼的方式

書寫完shell指令碼(文字)並儲存後,以下列三種方式執行   1, 切換到指令碼所在目錄: $ bash<指令碼名   2, 切換到指令碼所在目錄: $ bash 指令碼名 [引數1] [引數2]   3, 給sh

執行shell指令碼時提示bad interpreter:No such file or directory的解決辦法

故障現象:在終端直接cd /var正常,在shell指令碼中執行則報錯。原因是指令碼是在windows平臺下寫的,換行符與linux不同,造成指令碼不能正確執行 出現bad interpreter:No such file or directory(沒有那個檔案或目錄)

springcloud 叢集部署jar檔案,shell指令碼執行

本文主要是記錄springcloud的註冊中心的高可用、叢集部署、專案打包jar檔案編寫shell指令碼進行部署。 首選我們準備一個註冊中心jar包,裡面有兩個配置檔案 application-eureka1.properties   : #服務埠 server.por

執行shell指令碼的四種方式(轉)

原文網址:https://www.jb51.net/article/53924.htm 這篇文章主要介紹了Linux中執行shell指令碼的4種方法,即總結在Linux中執行shell指令碼的4種方法。 前提:bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為

sh命令 /Linux中執行shell指令碼的4種方法總結

bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在/data/shell目錄中並已有執行許可權。 方法一:切換到shell指令碼所在的目錄(此時,稱為工作目錄)執行shell指令碼:此種方法為阿里雲推

執行shell指令碼出現bad interpreter:No such file or directory錯誤

出現原因:在windows下編輯的指令碼,所以有可能有不可見字元。指令碼檔案是DOS格式的,即每一行的行尾以\r\n來標識, 其ASCII碼分別是0x0D, 0x0A. 解決方法,vim出問題的指令碼

部署在tocmat的程式執行shell指令碼

  1 需要把shell指令碼放在resources目錄下。如shell.sh   2需要在tomcat裡面定位到當前shell的目錄,不要定位到了tomcat的目錄裡面去   定位程式碼 String path1 = Thread.cur

執行 Shell 指令碼的兩種方法

執行 Shell 指令碼有兩種方法: 1、作為可執行程式 將程式碼儲存為 test.sh,並 cd 到相應目錄: chmod +x ./test.sh #使指令碼具有執行許可權 ./test.sh #執行指令碼 注意,一定要寫成 ./test.sh,而不是 test.sh,執行其它