事先准备工作:源码安装apache 。安装目录为/usr/local/httpd

任务需求:

1、可通过 service httpd start|stop|status|restart 命令对服务进行控制

2、httpd服务可开机自启动

思路:

1、start、stop操作可直接调用源码安装的httpd的控制程序apachectl

2、在启动服务时,建立httpd.lock文件;停止服务时删除

3、status操作检测httpd.lock文件是否存在,存在判断服务已启动,不存在表示服务停止

4、对每个操作建立对应的函数,进行调用

5、restart操作先调用stop函数,在调用start函数

6、服务脚本的控制参数通过位置变量 $1 传入,使用case分支进行识别、执行相应的操作

7、在脚本开头添加chkconfig管理参数,定义哪个运行级别启动、服务启动优先级、服务关闭优先级(让服务开机自启动,必须添加),description服务描述,进程名

PS:看过系统已有系统服务脚本,发现那些比我写的复杂多了。原谅我刚学shell,第一次写系统服务脚本

脚本如下:

#vim /etc/init.d/httpd

#!bin/bash

#chkconfig:2345 55 25    //运行级别、启动优先级、关闭优先级

#processname:httpd        //进程名

#description:source httpd server daemon  //服务描述

prog=/usr/local/httpd/bin/apachectl      //控制程序路径

lock=/usr/local/httpd/httpd.lock        //lock文件路径

start(){                                //start函数

$prog start

echo "正在启动服务...."

touch $lock

}

stop(){                                //stop函数

$prog stop

echo "正在停止服务...."

rm -rf $lock

}

status(){                        //status函数

if [ -e $lock ];then

echo "$0 服务正在运行"

else

echo "$0 服务已经停止"

fi

}

restart(){              //restart函数

stop

start          //直接调用stop、start函数,

}

case "$1" in        //case分支结构匹配,$1位置参数对控制参数调用

"start")

start      //调用start函数

;;

"stop")            //调用stop函数

stop

;;

"status")            //调用status函数

status

;;

"restart")            //调用restart函数

restart

;;

*)                //其他参数就输出脚本正确用法

echo "用法:$0 start|stop|status|restart"

;;

esac

验证:

[root@ndbA /]# service httpd start

正在启动服务....

[root@ndbA /]# service httpd status

/etc/init.d/httpd 服务正在运行

[root@ndbA /]# service httpd stop

正在停止服务....

[root@ndbA /]# service httpd status

/etc/init.d/httpd 服务已经停止

[root@ndbA /]# service httpd stop

httpd (no pid file) not running

正在停止服务....

[root@ndbA /]# service httpd restatus

用法:/etc/init.d/httpd start|stop|status|restart

[root@ndbA /]# service httpd restart

httpd (no pid file) not running

正在停止服务....

正在启动服务....

[root@ndbA /]#

[root@ndbA /]# chkconfig --list httpd

httpd          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[root@ndbA /]# chkconfig  httpd off

[root@ndbA /]# chkconfig --list httpd

httpd          0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

[root@ndbA /]# chkconfig  httpd on

[root@ndbA /]# chkconfig --list httpd

httpd          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[root@ndbA /]#

linux shell写服务,Linux shell编写系统服务脚本相关推荐

  1. linux 编写系统服务,Linux shell编写系统服务脚本

    事先准备工作:源码安装apache .安装目录为/usr/local/httpd 任务需求: 1.可通过 service httpd start|stop|status|restart 命令对服务进行 ...

  2. linux 如何注册服务,Linux 系统服务注册

    Linux注册系统服务步骤 1.编写服务脚本 2.拷贝到/etc/init.d目录下 3.为服务脚本添加可执行权限   >>chmod a+x xxxd 4.添加到系统服务中        ...

  3. linux查看定时服务,linux 定时任务 crond 服务介绍

    linux定时任务crond服务应用指南 Linux的定时任务crond(crontab)服务 1.crond是什么? crond是linux系统中用来定期执行命令或者指定程序的程序(软件) 2.秒级 ...

  4. linux查看php服务,linux如何查看服务

    服务(service) (推荐学习:linux运维) 服务相当于支持系统运行的一些必要程序,默默运行在系统后台的,他可以为应用程序提供一些更有特色的东西,比如播放MP3,开启一个播放MP3的服务,用户 ...

  5. linux下添加服务,Linux下添加服务

    1.按一定的规则编写服务脚本,比如:myserviced #!/bin/sh #chkconfig: 2345 80 05 #description: myservice case $1 in sta ...

  6. linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网

    Linux文件处理sed命令详解教程 Linux sed命令使用 Linux sed 命令处理时,把当前处理的行存储在临时缓冲区中,称为 "模式空间"( oattern space ...

  7. linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义的.Linux工具用来过滤文本的模式模板.正则表达式模式利用通配符来代表数据流中的一个 ...

  8. Linux redis配置服务,Linux 安装 redis 并配置成 service 系统服务

    前言 写作这一篇文章纯粹的目的就是快速上手redis,人的精力有限,将你的精力花在学习知识上,而不是安装. 我就是喜欢简单的命令管理 Linux 上的程序,信奉傻瓜式操作是流行的前提.当你希望弄懂为什 ...

  9. linux发布成服务,linux服务简单部署

    1.后台运行 在linux下运行一个程序,打开终端,如果是可执行文件则是 ./binary_name 如果是python脚本,运行命令是python file_name.py 此时的程序运行时依赖于当 ...

最新文章

  1. 2019年的面试经验:Java程序员越来越悲催了!
  2. flask secure_filename 不能识别中文名的解决办法
  3. Activity应用场景解析
  4. 关于Unity中从服务器下载资源压缩包AssetBundle的步骤
  5. 机器学习笔记 RNN初探 LSTM
  6. SAP License:SAP系统合规性审计介绍
  7. PHP 相关 收藏
  8. Pandas DataFrame merge join concat append combin_first 使用demo
  9. win7定时关机命令是什么
  10. iPad被停用,安装iTunes提示安装包出错解决办法
  11. 制作照片边框 初学者 ps
  12. C#做的一个简易图片浏览器
  13. 什么是随机存取_内存和存储器有什么区别?
  14. 五阶魔方公式java_五阶魔方降阶法公式是什么?
  15. 按步搭建简单IoT微服务(2)
  16. echarts自定义视图数据(dataView)
  17. 两个实打实干活的同事离职了,老板连谈都没谈,一句挽留都没有,你怎么看
  18. Brave Game(bash game-巴什博弈)
  19. Flutter网络请求库DIO入门文档,实战案例
  20. 爱情八十八课,对抗消磨

热门文章

  1. python中文什么意思-python是什么
  2. ipad编程软件python-iPad可用的软件编程软件有吗?
  3. python数据分析的主要流程-Python数据分析流程
  4. 怎么自学python自动化测试-学习自动化测试,如何学习Python语言?
  5. python使用什么来表示不同级别的语句块-Python
  6. python主要运用于-python主要应用领域有哪些?看这一篇就够了
  7. python哪里下载import包-【Python包】模块和包导入详解(import)
  8. UVa11100 The Trip,2007(贪心)
  9. The Report(连接查询)
  10. Ubuntu14.04安装QQ2013