Linux_自制系统服务启动脚本

简介: 目录目录前言Case语句Apache 启动脚本Postfix service 启停脚本前言在Linux的某些系统服务中,需要自己定制启动服务的脚本。

目录

前言

在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
相关文章
|
7天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
41 2
|
10天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
61 0
|
10天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
26 0
|
8天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
25 6
|
3天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
17 0
|
3天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
4天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
12天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
12天前
|
Prometheus 监控 Cloud Native
【Linux】查看系统内存命令(详细讲解)
【Linux】查看系统内存命令(详细讲解)
|
14天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
35 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境