Shell脚本学习笔记-运行控制

1. Linux中的信号机制

1.1 产生信号:

1.1.1 键盘组合键

终止进程:SIGINT    Ctrl+c

暂停进程:SIGSTP  Ctrl+z

1.1.2 常用命令

kill: 杀死指定进程PID的进程

killall: 杀死指定进程名的进程

1.2 程序中的信号处理

1.2.1  按照默认方式处理信号

1.2.2 忽略信号

1.2.3 按照自定义方式捕捉并处理信号

1.3 捕捉信号-trap命令,e.g.

1.3.1 捕捉退出信号

#!/bin/sh

trap "echo ‘trap worked’" EXIT

count=1
while [ $count -le 3 ]
do
    echo "Loop of $count"
    sleep 1
    count=$[ $count+1 ]
done
echo "Loop Ended" 
运行结果:

1.3.2 移除捕获, trap - 信号

#!/bin/sh

trap "echo ‘trap worked’" EXIT

count=1
while [ $count -le 3 ]
do
    echo "Loop of $count"
    sleep 1
    count=$[ $count+1 ]
done
echo "Loop Ended" 
#移除捕获
trap - EXIT
echo "trap deleted"
运行结果:

2. 后台运行脚本

2.1 后台运行进程,即不运行在中断显示器上的进程

2.2 后台运行进程的命令格式:script& ,  e.g.


2.3 通过jobs命令,可查看运行中的作业,e.g.


2.4  通过bg,fg重启暂停的作业,bg为以后台的形式重启作业,fg为以前台的形式重启作业,e.g:



2.5 作业优先级

2.5.1 优先级范围:-20(高) -19(低)

2.5.2 优先级设定:nice

2.5.3 优先级重设:renice


2.6 脱离控制台限制- nohup Script&, 运行中关掉控制台,依旧能继续运行,并将运行结果输出到nohup.out文件中。

2.6.1 脚本内容:

#!/bin/sh

count=1
while [ $count -le 15 ]
do
    echo "Loop of $count"
    sleep 3
    count=$[ $count+1 ]
done
echo "Loop Ended" 
2.6.2 运行结果:


3. 定时运行脚本

3.1 指定时间运行,命令格式:at [-f filename] time, 时间的格式可以是:10:15, 10:15~PM, now, noon, midnight, teatime, MMDDYY, MM.DD.YY, MM/DD/YY, Dec 25, now+1min等

3.2 简单示例,e.g.指定具体时间进行运行脚本:

#!/bin/sh

exec 1>testresult
echo "scritp ran at `date`"

(备注:mac上面执行at命令有点问题,可以正常执行at命令,但是无法定时执行脚本,暂未找到原因)

3.3 通过crontab和anacrontab命令,进行周期性执行相关命令,详细内容可参考:点击打开链接

4. 启动时运行脚本

4.1 自定义开机运行脚本, 将需要运行的脚本命令,添加到rc.local文件里面即可,不同系统rc.local存放的路径不同:

debian:    /etc/init.d/rc.local

Ubuntu:  /etc/rc.local

CentOS:  /etc/rc.d/rc.local

4.2 Shell启动时运行脚本, 将需要运行的脚本配置到对应的配置文件中;不同方式,读取的配置文件不同:

启动bash:  /etc/profile    /etc/.bashrc

通过ssh登陆:  /etc/profile   /etc/.bashrc

通过ssh执行命令: /etc/.bashrc

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值