linux shell写服务,Linux shell编写系统服务脚本
事先准备工作:源码安装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编写系统服务脚本相关推荐
- linux 编写系统服务,Linux shell编写系统服务脚本
事先准备工作:源码安装apache .安装目录为/usr/local/httpd 任务需求: 1.可通过 service httpd start|stop|status|restart 命令对服务进行 ...
- linux 如何注册服务,Linux 系统服务注册
Linux注册系统服务步骤 1.编写服务脚本 2.拷贝到/etc/init.d目录下 3.为服务脚本添加可执行权限 >>chmod a+x xxxd 4.添加到系统服务中 ...
- linux查看定时服务,linux 定时任务 crond 服务介绍
linux定时任务crond服务应用指南 Linux的定时任务crond(crontab)服务 1.crond是什么? crond是linux系统中用来定期执行命令或者指定程序的程序(软件) 2.秒级 ...
- linux查看php服务,linux如何查看服务
服务(service) (推荐学习:linux运维) 服务相当于支持系统运行的一些必要程序,默默运行在系统后台的,他可以为应用程序提供一些更有特色的东西,比如播放MP3,开启一个播放MP3的服务,用户 ...
- linux下添加服务,Linux下添加服务
1.按一定的规则编写服务脚本,比如:myserviced #!/bin/sh #chkconfig: 2345 80 05 #description: myservice case $1 in sta ...
- linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网
Linux文件处理sed命令详解教程 Linux sed命令使用 Linux sed 命令处理时,把当前处理的行存储在临时缓冲区中,称为 "模式空间"( oattern space ...
- linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式
本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义的.Linux工具用来过滤文本的模式模板.正则表达式模式利用通配符来代表数据流中的一个 ...
- Linux redis配置服务,Linux 安装 redis 并配置成 service 系统服务
前言 写作这一篇文章纯粹的目的就是快速上手redis,人的精力有限,将你的精力花在学习知识上,而不是安装. 我就是喜欢简单的命令管理 Linux 上的程序,信奉傻瓜式操作是流行的前提.当你希望弄懂为什 ...
- linux发布成服务,linux服务简单部署
1.后台运行 在linux下运行一个程序,打开终端,如果是可执行文件则是 ./binary_name 如果是python脚本,运行命令是python file_name.py 此时的程序运行时依赖于当 ...
最新文章
- 2019年的面试经验:Java程序员越来越悲催了!
- flask secure_filename 不能识别中文名的解决办法
- Activity应用场景解析
- 关于Unity中从服务器下载资源压缩包AssetBundle的步骤
- 机器学习笔记 RNN初探 LSTM
- SAP License:SAP系统合规性审计介绍
- PHP 相关 收藏
- Pandas DataFrame merge join concat append combin_first 使用demo
- win7定时关机命令是什么
- iPad被停用,安装iTunes提示安装包出错解决办法
- 制作照片边框 初学者 ps
- C#做的一个简易图片浏览器
- 什么是随机存取_内存和存储器有什么区别?
- 五阶魔方公式java_五阶魔方降阶法公式是什么?
- 按步搭建简单IoT微服务(2)
- echarts自定义视图数据(dataView)
- 两个实打实干活的同事离职了,老板连谈都没谈,一句挽留都没有,你怎么看
- Brave Game(bash game-巴什博弈)
- Flutter网络请求库DIO入门文档,实战案例
- 爱情八十八课,对抗消磨
热门文章
- python中文什么意思-python是什么
- ipad编程软件python-iPad可用的软件编程软件有吗?
- python数据分析的主要流程-Python数据分析流程
- 怎么自学python自动化测试-学习自动化测试,如何学习Python语言?
- python使用什么来表示不同级别的语句块-Python
- python主要运用于-python主要应用领域有哪些?看这一篇就够了
- python哪里下载import包-【Python包】模块和包导入详解(import)
- UVa11100 The Trip,2007(贪心)
- The Report(连接查询)
- Ubuntu14.04安装QQ2013