Linux下shell编程学习
2016-09-21 14:14
197 查看
1.编程入门:http://c.biancheng.net/cpp/view/7011.html
2.自启动服务脚本:http://www.linuxidc.com/Linux/2014-02/97271.htm
3.chkconfig介绍:http://blog.csdn.net/monkey_d_meng/article/details/5573580
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的运行级别和chkconfig用法
一、Linux的运行级别
在装MySQL的时候,才知道了Linux的运行级别这么一回事。汗…自己太水了…下面总结一下:
什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具有不同的功能。这些级别定义在/ect/inittab文件中。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/ect/rc.d目录下的文件。
Linux下的7个运行级别:
0à系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1à单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2à多用户状态,没有NFS支持。
3à完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
4à系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5àX11控制台,登陆后进入图形GUI模式,X Window系统。
6à系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。
运行级别原理:
1.在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
2.在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3.rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
4.系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服; 对于以S开头的文件,系统将启动对应的服务
5.查看运行级别用:runlevel
6.进入其它运行级别用:init N,如果init 3则进入终端模式,init 5则又登录图形GUI模式
7.另外init0为关机,init 6为重启系统
标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着X Window系统。
不同的运行级别有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的lilo提示符下输入:
init=/bin/sh rw
这样就可以使机器进入运行级别1,并把root文件系统挂为读写。它会路过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级。
二、chkconfig用法
chkconfig命令可以用来检查、设置系统的各种服务
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
--addà增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--delà删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>à指定读系统服务要在哪一个执行等级中开启或关毕。
使用范例:
chkconfig --list 列出所有的系统服务
chkconfig --add httpd 增加httpd服务
chkconfig --del httpd 删除httpd服务
chkconfig --level httpd 2345 on 把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置MySQL服务器在运行级别3和4上运行,你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql
现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
在其他级别上设为off
chkconfig --level 01246 mysql off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示:
#chkconfig --list mysql
mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:off
2.自启动服务脚本:http://www.linuxidc.com/Linux/2014-02/97271.htm
3.chkconfig介绍:http://blog.csdn.net/monkey_d_meng/article/details/5573580
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的运行级别和chkconfig用法
一、Linux的运行级别
在装MySQL的时候,才知道了Linux的运行级别这么一回事。汗…自己太水了…下面总结一下:
什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具有不同的功能。这些级别定义在/ect/inittab文件中。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/ect/rc.d目录下的文件。
Linux下的7个运行级别:
0à系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1à单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2à多用户状态,没有NFS支持。
3à完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
4à系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5àX11控制台,登陆后进入图形GUI模式,X Window系统。
6à系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。
运行级别原理:
1.在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
2.在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3.rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
4.系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服; 对于以S开头的文件,系统将启动对应的服务
5.查看运行级别用:runlevel
6.进入其它运行级别用:init N,如果init 3则进入终端模式,init 5则又登录图形GUI模式
7.另外init0为关机,init 6为重启系统
标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着X Window系统。
不同的运行级别有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的lilo提示符下输入:
init=/bin/sh rw
这样就可以使机器进入运行级别1,并把root文件系统挂为读写。它会路过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级。
二、chkconfig用法
chkconfig命令可以用来检查、设置系统的各种服务
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
--addà增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--delà删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>à指定读系统服务要在哪一个执行等级中开启或关毕。
使用范例:
chkconfig --list 列出所有的系统服务
chkconfig --add httpd 增加httpd服务
chkconfig --del httpd 删除httpd服务
chkconfig --level httpd 2345 on 把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置MySQL服务器在运行级别3和4上运行,你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql
现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
在其他级别上设为off
chkconfig --level 01246 mysql off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示:
#chkconfig --list mysql
mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:off
相关文章推荐
- Linux之shell编程学习
- Linux--shell编程学习
- linux命令行+SHELL编程学习(2)
- linux结构化shell编程学习
- linux 无盘安装 没有光驱 无光驱 rawrite ftp安装
- 向Linux进军(X-Window配置指南)
- 大家来做linux调试日志 (tomcat jsp server 配置方法)
- 高效配置Linux代理服务器――Squid
- linux 下 squid 安装日志
- 硬件全攻略--MODEM linux内猫配置 驱动软猫
- Linux系统中的入侵检测
- crontab命令简介 linux定时设置 Cron实现自动任务
- Linux 指令篇(1)
- Linux下声卡通
- 聆听自由的声音----Linux下声卡驱动软件ALSA的安装与配置
- 如何用Linux安装TCP/IP路由器 route subnet arp
- 在Linux下如何驱动联想D-link DFE-530TX(也叫D-link DFE-530TX Rev B)网卡
- Linux -安装PHP7
- Linux下C开发工具介绍 GCC gdb xxgdb calls calltree cproto indent gprof
- linux 内核模块 和 驱动程序的编写(1)