欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

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

发布时间:2025/6/15 linux 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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脚本的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。