《Linux命令、编辑器与Shell编程》读书笔记14-Shell实例及调试

所谓运行级别脚本,就是启动/关闭自定义服务(应用)的脚本,相当于windows下某个应用的启动程序文件(.exe文件)。也可以理解这种脚本就是一个启动应用的脚本。

运行级别脚本的结构

1. 首先要以注释的方式声明服务默认启动的运行级别列表,以及系统在启动、关闭该服务时的优先级;说明之后一般有三种方式去实现:

(1)可以通过在inittab中添加一项,来确定在系统启动时,必须执行自己定义的脚本

    xx.sh:12345:once:path > /dev/null 2>&1

(2)可以在运行级别中目录[/etc/rc.d/rc3.d]中添加脚本连接文件 --最好方式

(3)在/etc/rc.d/rc.local(SUSE下是boot.local)文件中添加shell_patharg命令来执行

2. 将对服务的启动、关闭等操作都卸载函数中

3. 用case语句处理传入脚本的参数。

4. 如果要检测服务是否处于运行状态,最好创建运行标记文件

某产品运行级别脚本示例

#!/bin/bash
 
#chkconfig:3 4 5 80 10
#This is a test service!
 
function usage()
{
       echo "Usage: $0 <start|stop|restart|reload>"
       return 0
}
 
function start()
{
       echo "Starting $0:"
#这里还以添加其他要启动和运行的脚本
       return 0
}
 
function Stop()
{
       echo "Stopping $0:"
#这里可以添加其他要停止运行的脚本
       return 0
}
 
case $1 in
       start)
                start
                ;;
       Stop)
                Stop
                ;;
       stop)
                Stop
                ;;
       reload|restart)
                Stop
                start
                ;;
       *)
                usage
                exit 1
esac
exit 0


添加和管理启动脚本

关于设置自定义服务的运行级别等方法,可以使用前面说过的chkconfig命令实现

(详见:http://blog.csdn.net/victory_xing126/article/details/50363557

简单的说:

1. 先将自定义启动脚本拷贝到/etc/init.d文件夹下:

cp  service_script.sh /etc/init.d/

2. 添加启动脚本到系统服务自启列表中:

# chkconfig -add  service_script.sh

insserv: warning: script'service_script.sh' missing LSB tags

insserv: warning: script'service_script.sh' missing LSB tags

insserv: Default-Start undefined, assumingdefault start runlevel(s) for script `service_script.sh'

service_script.sh         0:off 1:off  2:off  3:on  4:off  5:on   6:off

之后就可以使用chkconfig命令统一管理自定义脚本了:

#chkconfig -l|grep service_s

service_script.sh         0:off 1:off  2:off  3:on  4:off  5:on   6:off

Shell脚本安全性

如果脚本中出现目录切换、修改环境变量之类的命令,则可能为系统留下安全隐患,为此Shell提供了一种受限模式:当脚本中出现类似上述的命令,Bash会拒绝执行。

通过在脚本的第一行加上r选项来开启该模式:

#!/bin/bash -r

或者在脚本第二行中加入:

set -r

也能使脚本进入受限模式。

*set命令还有一个选项(x)可以使脚本进入调试模式,可以针对某一段使用set -x、set +x进入/退出调试模式。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值