脚本控制


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查看信号
kill -l 



crtl+C   SIGINT
ctrl+Z   SIGTSTP  暂停进程
程序退出   EXIT


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

信号捕获
trap 命令格式
trap commands signals      例如 trap "echo hehe" SIGINT  当收到ctrl-c时输出 hehe,多个信号 空格隔开


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
移除捕获
使用  “-” 移除捕获

trap - SIGINT  移除忽略ctrl-c信号


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
count=1
trap "echo hello" SIGINT   
while [ $count -lt 50 ]
  do
    echo "#loop $count"
             sleep 3
        count=$[$count + 1 ]
              if [ $count -eq 5 ]
                      then
                         trap - SIGINT
                         echo "I just remove the trap"
               fi
 done

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

trap "echo hello" SIGINT  捕获ctrl-c信号 如果在$count等于1-5的时候执行ctrl-c这忽略信号

if [ $count -eq 5 ]
                      then
                         trap - SIGINT
                         echo "I just remove the trap"
fi

在$count=5后 移除捕获
则受到ctrl-c之后中断



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


以后台模式运行脚本

nohup scripts &       and   &               jobs       kill %ID



演示的时候给脚本755 权限  执行不能使用sh

/script &  ## 1111

and

nohup /script & ##2222

注销用户 登陆在查看进程是否在     1111不在  2222在


运行多个后台程序     &

每运行一个后台程序 都会有一个后台作业号

./test1 &
./test2 &


此类后台运行当注销该账户的时候所有后台程序也退出



不使用控制台的情况下运行脚本   nohup scripts &




ctrl-z   bg  fg

ctrl-z  停止当前运行程序

fg 后台到前台

bg  启动后台停止程序




nice指定程序运行的优先级    -19   ----  20  值越小  优先级越大


nice -n -10 ./test &



renice  更改正在运行程序的优先级

renice 10 -p 1234       -p  pid



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

任务定制

at   batch  cron


at  atq  atrm 




batch  让脚本在计算机负载比较低的情况下运行  

batch -f filename time     如果你定义的该时间服务器负载高 会延迟执行


cron    
定制cron任务表格

crontab -e



anacron 程序

cron只能在linux运行的时候执行  当linux关闭后就不会再运行了   anacron能够在机器关闭运行后检查程序使用的时间戳确定
程序是否在关闭服务器的时候错过了运行,如果错过了会安排程序尽快运行



anacron程序使用自己的表格 (/etc/anacron)指定作业

表格格式
period delay identifier command



period  定义作业应该间隔多久运行一次  以天为单位
delay   指定在anacron程序确定应该运行一个命令之后需要多长时间才会实际运行该命令,该选项可以为不同的命令设置不同的
执行延迟,避免在开机时大量程序执行

identifier 是一个唯一的非空字符串 可以唯一的标识日志消息和错误电子邮件中的作用

results matching ""

    No results matching ""