日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux手动启动、停止多个服务用的shell脚本

發布時間:2025/6/15 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux手动启动、停止多个服务用的shell脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題通用場景描述:測試服務器上的服務眾多,為了避免過大的資源開銷將原先的服務都設置為開機不啟動,僅保留一些必要的系統服務,因此當需要使用哪些服務時需要手動開啟。有的服務對其他服務可能存在依賴關系,例如服務A依賴服務B,服務B依賴服務C。此時可以用順序執行的方式解決依賴問題,如果檢查到依賴不滿足,則退出執行。

編碼思路:

(一)為什么使用函數?

1.當有重復代碼或 當一個任務只需要很少的修改就被重復幾次執行時, 這時你應考慮使用函數.

2.函數可以處理傳遞給它的參數并且能返回它的退出狀態碼(exit status)給腳本后續使用.

(二)函數參數如何傳遞的?

函數以位置來引用傳遞過來的參數(就好像他們是位置參數(positional parameters)), 例如$1,$2以此類推.

(三)如何處理依賴關系?

用順序執行的方式解決依賴問題,如果檢查到依賴不滿足,則退出執行。

編碼范例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 #!/bin/bash REQUIRED_SERVICE_1=mysql REQUIRED_SERVICE_2=zabbix-server REQUIRED_SERVICE_3=zabbix-agent function?help(){ ????echo?"Function:?start\stop?zabbix?service?and?dependence,?and?check?status" ????echo?"Usage:?$0?{start|stop|status|help}" } function?check_service_if_is_running(){ ????SERVICE=$1 ????service?$SERVICE?status?>/dev/null?2>&1 ????REVAL=$? ????if?[[?$REVAL?-eq?0?]];?then ????????return?0 ????else ????????return?1 ????fi } function?start_service_if_is_stoped(){ ????SERVICE=$1 ????service?$SERVICE?start?>/dev/null?2>&1 ????check_service_if_is_running?$SERVICE ????REVAL=$? ????if?[[?$REVAL?-eq?0?]];?then ????????echo?$SERVICE?is?running... ????else ????????echo?$SERVICE?is?not?running,?error?code?is?$REVAL. ????????exit?1 ????fi } function?stop_service_if_is_running(){ ????SERVICE=$1 ????service?$SERVICE?stop?>/dev/null?2>&1 ????check_service_if_is_running?$SERVICE ????REVAL=$? ????if?[[?$REVAL?-eq?1?]];?then ????????echo?$SERVICE?is?stoped... ????fi } function?status_service(){ ????SERVICE=$1 ????check_service_if_is_running?$SERVICE ????REVAL=$? ????if?[[?$REVAL?-eq?0?]];?then ????????echo?$SERVICE?is?running... ????else ????????echo?$SERVICE?is?not?running,?error?code?is?$REVAL. ????????exit?1 ????fi } function?start(){ ????start_service_if_is_stoped?$REQUIRED_SERVICE_1 ????start_service_if_is_stoped?$REQUIRED_SERVICE_2 ????start_service_if_is_stoped?$REQUIRED_SERVICE_3 } function?stop(){ ????stop_service_if_is_running?$REQUIRED_SERVICE_3 ????stop_service_if_is_running?$REQUIRED_SERVICE_2 ????stop_service_if_is_running?$REQUIRED_SERVICE_1 } function?status(){ ????status_service?$REQUIRED_SERVICE_1 ????status_service?$REQUIRED_SERVICE_2 ????status_service?$REQUIRED_SERVICE_3 } case?"$1"?in? ????start) ????????start ????;; ????stop) ????????stop ????;; ????status) ????????status ????;; ????*) ????????help ????????exit?1 ????;; esac

編碼測試:

--END--



本文轉自 urey_pp 51CTO博客,原文鏈接:http://blog.51cto.com/dgd2010/1617846,如需轉載請自行聯系原作者


總結

以上是生活随笔為你收集整理的Linux手动启动、停止多个服务用的shell脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。