国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux:將服務(wù)重啟腳本加入CentO7的開機啟動里

這篇具有很好參考價值的文章主要介紹了Linux:將服務(wù)重啟腳本加入CentO7的開機啟動里。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用場景

  • 我們的平臺服務(wù)使用docker部署,使用docker-compose進行管理
  • 平臺部署到客戶環(huán)境時,一小部分客戶,使用自己機房或單獨的服務(wù)器,并沒有做斷電保護,有時候這臺服務(wù)器會斷電重啟
  • 斷電重啟后,我們的平臺服務(wù)要能自動拉起來,為客戶正常提供服務(wù)
  • 實現(xiàn)思路很簡單,創(chuàng)建一個平臺維護腳本,開機啟動時自動執(zhí)行
  • 首先把平臺服務(wù)的啟動過程,編寫為一個shell腳本,按照一定順序啟動服務(wù)的各個組件
  • 然后將此腳本,加入CentOS7的開機啟動項中

平臺重啟腳本

  • 先來講一下平臺的重啟腳本
  • 由于我們的平臺服務(wù)使用docker部署的,首先需要將docker服務(wù),加入開機自啟動
systemctl enable docker
  • 然后編寫平臺服務(wù)重啟腳本docker-restart.sh,主要是根據(jù)自己的應(yīng)用情況,搞一個啟動順序
  • 主要思路是,先啟動各個中間件(PostgreSQL、Rediskafka等),再啟動各個應(yīng)用服務(wù),最后再啟動nginx等其他所有未啟動的服務(wù)
#!/bin/bash

cd /home
echo '當(dāng)前目錄為:'$(pwd)
docker network create signal-network
echo '開始重啟服務(wù)'
echo '當(dāng)前目錄為:'$(pwd)
cd signal/instance/
docker-compose --compatibility up -d postgresql zookeeper redis portainer
echo "為保證中間件創(chuàng)建完成啟動成功,等待5秒"
sleep 5s

echo '開始創(chuàng)建其他需要的容器,請稍等,可能需要幾分鐘'
docker-compose --compatibility up -d keycloak kafka consul consul-config-loader
sleep 15s

docker-compose --compatibility up -d gateway-app unit-app data-center-app

sleep 25s
docker-compose --compatibility up -d
sleep 15s
docker restart nginx

echo '當(dāng)前目錄為:'$(pwd)
echo '所有命令執(zhí)行完成,請稍等1分鐘后,訪問ip地址,查看界面是否正常展示!'

加入開機啟動

  • 平臺重啟腳本搞好之后,就需要將這個腳本,加入到開機自啟動里面
  • 加入方法很多,我采用的是賦予/etc/rc.d/rc.local開機啟動執(zhí)行 權(quán)限,再在里面寫一個執(zhí)行平臺重啟腳本的命令
  • 下面的一段,是加到平臺服務(wù)重啟腳本docker-restart.sh里面前幾行里面的,第一次部署平臺時,執(zhí)行下這個腳本
  • 主要邏輯:根據(jù)文件內(nèi)容,判斷平臺重啟腳本是否已加入開機啟動,如果沒有,則賦予執(zhí)行權(quán)限并加入
if cat '/etc/rc.d/rc.local' | grep "/home/docker-restart" > /dev/null
then
    echo "已加入重啟腳本"
else
echo "將docker服務(wù)重啟加入服務(wù)器重啟腳本"
chmod +x /etc/rc.d/rc.local
chmod +x /home/docker-restart.sh
cat >>/etc/rc.d/rc.local<<EOF
sh /home/docker-restart.sh &
EOF
fi
  • 注意:在CentOS 7中,系統(tǒng)默認(rèn)不加載/etc/rc.d/rc.local文件,需要手動添加開機啟動項來啟動該文件。所以有了這一行,chmod +x /etc/rc.d/rc.local,保證文件正常加載和執(zhí)行

腳本內(nèi)容詳解

  • docker-restart.sh就是一個普通的shell腳本,腳本里都是最基礎(chǔ)的一些命令
  • 我下面把我的腳本里用到的一些函數(shù)簡單介紹下,包括自己踩得一些坑

判斷文件內(nèi)容是否包含某字符串

  • 這個命令很好用,防止執(zhí)行腳本的命令重復(fù)加到開機啟動里面
  • cat '/etc/rc.d/rc.local' | grep "/home/docker-restart" > /dev/null
  • cat 'file path and name' | grep "your str" > /dev/null
  • 主要使用catgrep,前面是文件路徑和名稱,我用的絕對路徑;后面是要查找的字符串
  • 然后再進行判斷 > /dev/null,包含則為true,不包含為false

給文件添加可執(zhí)行權(quán)限

  • chmod +x /etc/rc.d/rc.local這句命令會給 /etc/rc.d/rc.local 文件添加可執(zhí)行權(quán)限
  • 賦予權(quán)限后,在系統(tǒng)啟動時,系統(tǒng)會自動執(zhí)行該文件中的命令
  • 通過給該文件添加可執(zhí)行權(quán)限,可以實現(xiàn)開機自啟動某些自定義命令或服務(wù)
  • 但是請注意,該操作需要謹(jǐn)慎處理,避免不必要的安全風(fēng)險或系統(tǒng)故障

給文件結(jié)尾添加內(nèi)容

  • 主要是用這幾句命令,在 /etc/rc.d/rc.local 文件最后面追加我們的平臺重啟腳本的執(zhí)行命令
  • 主要使用cat寫入
	cat >>/etc/rc.d/rc.local<<EOF
    sh /home/docker-restart.sh &
    EOF
  • sh后面加&,是為了后臺啟動,不影響開機速度

根據(jù)內(nèi)容刪除文件的指定行

  • 查找刪除很有用,可以幫我維護/etc/rc.d/rc.local文件的內(nèi)容,修復(fù)錯加的命令語句
  • 在早期部署時,重啟腳本還不完善,在/etc/rc.d/rc.local添加了錯誤內(nèi)容
  • 例如:應(yīng)該是添加sh /home/docker-restart.sh &,結(jié)果使用相對位置,錯加了sh /root/docker-restart.sh &,而文件在home目錄下,開機啟動時執(zhí)行不到,服務(wù)就沒有重啟
  • 還有的客戶機器配置比較差,服務(wù)啟動過程較慢,一開始寫入/etc/rc.d/rc.local的是sh /home/docker-restart.sh,沒有后面加&,導(dǎo)致系統(tǒng)一直在啟動中,客戶看到進度卡死(實際上在啟動平臺)又去重啟
  • 因為客戶都是內(nèi)網(wǎng)環(huán)境,也沒有專業(yè)運維,給客戶更新部署時,是提供自帶腳本的部署包??蛻羯蟼魑募?,執(zhí)行腳本即可,讓客戶去使用命令改文件,有點困難
  • 需要一個命令,查找指定行,并刪除,這個也有很多方法,我使用的是sed
if cat '/etc/rc.d/rc.local' | grep "docker-restart" > /dev/null
then
    sed -i '/docker-restart/d' /etc/rc.d/rc.local
fi

echo "將docker服務(wù)重啟加入服務(wù)器重啟腳本"
chmod +x /etc/rc.d/rc.local
chmod +x $(pwd)/docker-restart.sh
cat >>/etc/rc.d/rc.local<<EOF
sh $(pwd)/docker-restart.sh &
EOF

文章來源地址http://www.zghlxwxcb.cn/news/detail-511643.html

到了這里,關(guān)于Linux:將服務(wù)重啟腳本加入CentO7的開機啟動里的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Cento7 Docker-compose安裝RabbitMQ

    Cento7 Docker-compose安裝RabbitMQ

    ??RabbitMQ是一個消息中間件,是用Erlang語言編寫的。RabbitMQ據(jù)說具有良好的性能和時效性,同時還能夠非常好的支持集群和負(fù)載部署,非常適合在較大規(guī)模的分布式系統(tǒng)中使用。接下來我們就以docker形式安裝。 1.先安裝docker環(huán)境 RabbitMQ的docker-compose.yml的文件內(nèi)容如下: 默認(rèn)

    2024年02月11日
    瀏覽(18)
  • 在SHELL腳本中用curl處理服務(wù)器開機、關(guān)機、強制關(guān)機、重啟動作

    思路:利用了一張主控板來獲取服務(wù)器的開關(guān)機狀態(tài),開關(guān)機其實是給服務(wù)器一個500ms~1000ms的脈沖,等同與按了機箱面板的開關(guān)機按鈕開關(guān)。

    2024年02月07日
    瀏覽(35)
  • windows Server【開機啟動和任務(wù)計劃程序】實現(xiàn)服務(wù)器重啟后項目自啟動

    windows Server【開機啟動和任務(wù)計劃程序】實現(xiàn)服務(wù)器重啟后項目自啟動

    有些時候我們希望計算機開機后就啟動一些服務(wù)或應(yīng)用程序。 使用 Win+R 調(diào)出運行,輸入: 1?? shell:startup 用戶開機自啟動(程序開機自啟動只針對當(dāng)前登錄的用戶) 打開的目錄為 C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup 2?? shell:common startup 系統(tǒng)開

    2024年02月08日
    瀏覽(28)
  • Linux | 開機自啟動配置/啟動腳本

    Linux | 開機自啟動配置/啟動腳本

    1.1.1 修改資源下載地址 1.1.2 安裝/驗證 安裝 會有一個選擇 yes/no的 yes 就完了 驗證 這里準(zhǔn)備了 Tomcat、 Minio、Elasticsearch 的腳本,根據(jù)自己需求修改. 啟中包含了 start、stop、 restart 三個方法 – 將腳本放到 /etc/init.d 文件下 – 看腳本注釋 1.2.1 Tomcat 腳本 1.2.2 Minio 腳本 1.2.3 Elastics

    2024年02月09日
    瀏覽(21)
  • windows服務(wù)器下java程序健康檢測及假死崩潰后自動重啟應(yīng)用、開機自動啟動

    windows服務(wù)器下java程序健康檢測及假死崩潰后自動重啟應(yīng)用、開機自動啟動

    前兩天由于項目需要,一個windows上的批處理任務(wù)(kitchen.bat),需要接到mq的消息通知后執(zhí)行,為了快速實現(xiàn)這里我們通過springboot寫了一個jar程序,用于接收mq的消息,并調(diào)用bat文件。 調(diào)用windows的批處理腳本bat,并支持傳參 可根據(jù)配置設(shè)置并發(fā),同時消費多個mq消息調(diào)用多個

    2024年02月12日
    瀏覽(17)
  • Windows系統(tǒng)編寫bat腳本啟動,停止,重啟Java服務(wù)jar包

    Windows系統(tǒng)編寫bat腳本啟動,停止,重啟Java服務(wù)jar包

    創(chuàng)建一個以bat后綴結(jié)束的文件,寫入一下代碼: 在Windows系統(tǒng)上面創(chuàng)建 start.bat 啟動jar包腳本編輯以下內(nèi)容: 給窗口命名:“jeeplus-gateway”,如果是微服務(wù)的話方便查看 在Windows系統(tǒng)上面創(chuàng)建 stop.bat 停止jar包腳本編輯以下內(nèi)容: 重啟jar包就是將兩個合并到一起: 雙擊 bat文件 確

    2024年02月03日
    瀏覽(39)
  • Linux開機rc.local不自啟動執(zhí)行腳本問題的排查思路及問題解決

    Linux開機rc.local不自啟動執(zhí)行腳本問題的排查思路及問題解決

    問題 Linux系統(tǒng)中,在rc.local里面配置的啟動命令等不能能夠在開機的時候進行自啟動 問題解決 解決問題排查中最大的麻煩,需要進行reboot重啟 查看rc-local的運行狀態(tài) systemctl status rc-local 如果是loaded或者是faild類似,說明啟動確實出現(xiàn)了問題 首先查看檢查是否還有rc.local的軟連

    2024年02月16日
    瀏覽(20)
  • linux服務(wù)器啟動、關(guān)閉、重啟命令

    關(guān)機命令: 1、halt 立刻關(guān)機 2、poweroff 立刻關(guān)機 3、shutdown -h now 立刻關(guān)機(root用戶使用) 4、shutdown -h 10 10分鐘后自動關(guān)機 如果是通過shutdown命令設(shè)置關(guān)機的話,可以用shutdown -c命令取消重啟 5、init0 停機或者關(guān)機 重啟命令: 1、reboot 立即重啟 2、shutdown -r now 立刻重啟(root用戶使

    2024年02月15日
    瀏覽(102)
  • Linux查看開機啟動的服務(wù)

    在Linux系統(tǒng)中,可以使用不同的命令和工具來查看開機啟動的服務(wù)。以下是一些常用的方法: systemctl 命令: 使用 systemctl 命令可以查看系統(tǒng)中所有正在運行的服務(wù)以及它們的狀態(tài)。 若要查看某個特定服務(wù)的狀態(tài),可以使用: 若要查看某個服務(wù)是否在開機時啟動,可以使用:

    2024年02月04日
    瀏覽(21)
  • Linux如何查看服務(wù)啟動狀態(tài)是否開機自動啟動

    本文為joshua317原創(chuàng)文章,轉(zhuǎn)載請注明:轉(zhuǎn)載自joshua317博客?Linux如何查看服務(wù)啟動狀態(tài)是否開機自動啟動 - joshua317的博客 linux中查看服務(wù)啟動狀態(tài)是否開機自動啟動的方法: 1、打開linux終端; 2、在終端命令行中輸入“chkconfig --list servicename”命令查看服務(wù)啟動狀態(tài)是否開機自動

    2023年04月09日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包