Linux_自制系统服务启动脚本

举报
云物互联 发表于 2021/08/05 23:16:57 2021/08/05
【摘要】 目录 目录前言Case语句Apache 启动脚本Postfix service 启停脚本 前言 在Linux的某些系统服务中,需要自己定制启动服务的脚本。通常会使用Cash语句来实现。 Case语句 一般用于程序启动脚本 Syntax: case $1 in Param1) Commands ;; Param2) Commands ;...

目录

前言

在Linux的某些系统服务中,需要自己定制启动服务的脚本。通常会使用Cash语句来实现。

Case语句

一般用于程序启动脚本
Syntax:

case $1 in Param1) Commands ;; Param2) Commands ;; *) Commands esac
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Example:

#!/bin/bash -e
#/bin/bash -e 表示系统发生第一个错误时就中止脚本执行
#每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。
# chkconfig:35 12 45
#第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。
# description:Service start script
#第二行对服务进行描述,可以用\ 跨行注释。
RETVAL=0
case $1 in
start)
  echo "service starting..."
  ;;
stop)
  echo "service stopping..."
  ;;
restart)
#$0 meating is this one script
  sh $0 stop || true
# $0 stop || ture  表示出现错误时候不想中止的指令
  sh $0 start
  ;;
*)
  echo "input syntax error!"
  echo "Usage:Is [start|stop|restart]"
  exit 1
  ;;
esac
echo $RETVAL
###################################SCRIPT END
  
 
  • 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

Apache 启动脚本

######################################## Apache 启动脚本
#!/bin/bash -e 
[ -f /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions  
RETVAL=0  #使用变量作为判断和关联上下本的载体
httpd="/application/apache/bin/httpd" #使用变量简化使用指令的决定路径
start() { $httpd -k start >/dev/null 2>&1 #httpd -k start|restart|graceful|stop|graceful-stop 发送信号使httpd启动、重新启动或停止 # daemon httpd >/dev/null 2>&1   # 2>&1 将错误输出到正确输出,即标准输出和错误输出一起输出,管道|不通过错误输出 RETVAL=$? [ $RETVAL -eq 0 ] && action "启动 httpd:" /bin/true ||\ action "启动 httpd:" /bin/false return $RETVAL  
} stop() { $httpd -k stop >/dev/null 2>&1 # killproc httpd >/dev/null 2>&1   [ $? -eq 0 ] && action "停止 httpd:" /bin/true ||\ action "停止 httpd:" /bin/false return $RETVAL  
}  
case "$1" in start) start  #Call function start() ;; stop) stop ;; restart) sh $0 stop sh $0 start ;; *) echo "Format error!" echo $"Usage: $0 {start|stop|restart}" exit 1 ;;  
esac  
exit $RETVAL  
####################################### SCRIPT END
  
 
  • 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

Postfix service 启停脚本

################################ Postfix service 启停脚本
#!/bin/bash -e
# chkconfig:35 53 55
# discription:postfix
start() { echo "Starting postfix..." postfix start &> /dev/null echo "OK!"
}
stop() { echo -n "stopping postfix..." postfix stop &> /dev/null echo "OK!"
}
reload() { echo -n "Loading postfix configure file" postfix reload &> /dev/null echo "OK!"
}
status() { postfix status &> /dev/null if [ $? -eq 0 ] then echo "running!" else echo "stop!" if
}
help() { echo "syntax error!" echo "Uasge:Is [start|stop|restart|reload|status]"
}
case $1 in
start) $1 ;;
stop) $1 ;;
restart) stop start ;;
reload) $1 ;;
status) $1 ;;
*) help ;;
esac
################################SCRIPT END
  
 
  • 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

文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。

原文链接:is-cloud.blog.csdn.net/article/details/50407834

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。