目录

前言

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

Case语句

一般用于程序启动脚本

Syntax:

case $1 in
Param1)
Commands
;;
Param2)
Commands
;;
*)
Commands
esac

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

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

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

Linux_自制系统服务启动脚本的更多相关文章

  1. chkconfig系统服务启动设置

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息. 谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--a ...

  2. zabbix_agent添加到系统服务启动(八)

    Centos6.5上安装了zabbix_agent后,需要把zabbix_agent添加到系统服务启动,要不然每次要一长串路径再启动,挺麻烦的. 步骤: 1)拷贝zabbix解压包里的zabbix_a ...

  3. LNMP 1.4 nginx启动脚本和配置文件

    编写Nginx启动脚本,写入下面这段,授权755 vim /etc/init.d/nginx #!/bin/bash # chkconfig: - # description: http servic ...

  4. shell脚本之nginx启动脚本、统计日志字段、for循环实战、跳板机

    1.NGINX启动脚本 #!/bin/bash # chkconfig: 235 32 62 # description: nginx [ -f /etc/init.d/functions ] &am ...

  5. nginx启动脚本和配置文件

    1.编写Nginx启动脚本,并加入系统服务 vim /etc/init.d/nginx并在其中写入如下内容:#!/bin/bash# chkconfig: - 30 21# description: ...

  6. 短网址资料-nginx非root用户启动-systemctl启动脚本-分割root权限

    https://www.cnblogs.com/aspnethot/articles/3492191.htmlhttps://www.cnblogs.com/aspnethot/articles/34 ...

  7. logstash服务启动脚本

    logstash服务启动脚本 最近在弄ELK,发现logstash没有sysv类型的服务启动脚本,于是按照网上一个老外提供的模板自己进行修改 #添加用户 useradd logstash -M -s ...

  8. 改进uwsgi启动脚本,使其支持多个独立配置文件

    最近在研究flask,在架设运行环境的时候犯了难.因为我想把每个独立的应用像NGINX处理多个网站那样,每个应用单独一个配置文件.而网上流传的uwsgi启动脚本都只支持单个配置文件.虽然有文章说可以把 ...

  9. linux nginx 启动脚本

    linux nginx 启动脚本 [root@webtest76 ~]# vi /etc/init.d/nginx #!/bin/bash # nginx Startup script for the ...

随机推荐

  1. SpringBoot 使用logback

    1.添加pom引用 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback ...

  2. idea 社区版本创建javaweb项目 使用tomcat

    1.创建maven  webapp项目 2.pom文件添加依赖及tomcat7-maven-plugin插件 <dependencies> <dependency> <g ...

  3. C#Exception 追踪异常位置

    1:在编写软件时,保护关键位置的代码正常运行,要对这位置进行异常处理try catch private void StartTCPServer() { try { ........//我们要确保知道这 ...

  4. log.info()传入多个参数的方法

    不知道项目里用的是啥 ** 版本的 log4j 居然不能传入变长参数 logger.info(String.format("%s %s %s", username, feature ...

  5. js数组中的引用类型

    我们看一下这个例子: let a={tile:'深复制'}; let b=a; a.title='浅复制'; 那么我们会获得两个对象,一个a,一个b,a的title是浅复制,b的title是深复制.但 ...

  6. 330-基于FMC接口的Kintex-7 XC7K325T PCIeX8 3U PXIe接口卡 光纤PCIe卡

    一.板卡概述      本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit D ...

  7. Taro -- 使用 Redux 来进行全局变量的管理

    前言 Redux是JavaScript 状态容器,提供可预测化的状态管理.一般来说,规模比较大的小程序,页面状态,数据缓存,需要管理的东西太多,这时候引入Redux可以方便的管理这些状态,同一数据,一 ...

  8. 网络拓扑_VLAN与Trunk配置

    实验目的: 1.实现VLAN10的两台主机互通; VLAN20的两台主机互通; 2.VLAN10与VLAN20主机不能互通. 拓扑图: 步骤: 1.依图配置PC1,PC2,PC3,PC4的IP,掩码, ...

  9. python面向对象的三大特征--继承

    #什么时候用继承 #1.当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好 #2.当类之间有很多相同的功能,提供这些共同的功能做成基类,用继承比较好 class Dad: " ...

  10. win7提示不是正版桌面变黑

    1.以管理员身份运行cmd.exe 2.在该界面>后面输入SLMGR -REARM,大家注意下有个空格键 然后点击确定,重启电脑就OK了.