• linux shell 控制脚本


    • 处理信号

    常用信号:

    1,SIGHUP 挂起进程

    2,SIGINT   终止进程

    3,SIGOUT  停止进程

    9,SIGQUIT 无条件终止进程

    15,SIGTERM 可能的话终止进程

    17,SIGSTOP 无条件停止进程,但不是终止进程

    18,SIGTSTP 停止或暂停进程,但不终止进程

    19,SIGCONT 继续运行停止的进程

    默认情况下bash shell 会忽略收到的 SIGQUIT和SIGTERM,但是会处理SIGHUP和SIGINT

    产生信号:

    终止进程  Ctrl + C 会产生SIGINT信号

    暂停进程  Ctrl + Z 会产生SIGTSTP信号

    捕捉信号:

    trap命令   trap commands signals

    运行结果如下:

    使用Ctrl + C,脚本会执行trap命令中指定的echo语句。而不是忽略此信号,并允许shell停止该脚本。

    捕捉脚本的退出

    退出时执行 trap里面的echo语句

    移除捕捉:

    - 破折号用来移除信号捕捉。但是,如果在捕捉被移除之前就收到信号,还是会处理的,如下图:

    • 以后台模式运行脚本

    在命令后面加 & 就可以在后台运行了

    可以同时在后台运行多个程序

    • 在非控制台下运行脚本

    nohup commands  & 即使关闭会话该进程也不会结束,结果会保存在 nohub.out文件里

    • 作业控制

    查看作业

    jobs查看作业

    +号默认作业,-号默认作业完了之后额默认作业,同时最多只能有一个+号和一个-号

    重启停止的作业

    对于停止的作业,可以用bg 作业好或者fg作业号重启作业。

    bg是以后台模式重启作业,fg是前台模式重启作业

    • 调整前让度

    调度优先级 -20(最高)到+20(最低),默认情况以优先级0来启动所有进程

    nice命令  nice -n 10 bash test1.sh &  改变优先级,

    普通用户是无法提升优先级的

    renice命令允许你改变已经允许进程的优先级,renice 10 -p 12345

    只能对属于自己的进程执行renice

    普通用户只能降低进程优先级

    root用户可以增加和降低优先级

    • 定时运行作业

    at命令来计划执行作业  at [ -f  filename ] time

    支持的时间格式

    小时分钟  10:20

    AM/PM     10:20~PM

    特定命名   now  noon   midinight  teatime

    标准日期   MMDDYY    MM/DD/YY   DD.MM.YY

    文本日期   Jul 4或者 Dec 25 

    或者时间增量

    当前时间+30 min

    明天 10:20~PM

    10:20 + 7天

    使用at是 作业会提交到作业对了 job queue中,通常用小写字母a~z来引用,字母排序越高,运行优先级越低,可以用-q指定不同的队列字母。

    atq查看队列

    atrm删除作业

    计划定期执行脚本

    crontab -e 来添加定时任务

    min hour dayofmonth month dayofweek command

    • 启动时运行

    开机时运行脚本

    /etc/inittab 文件列出系统运行级别  run level

  • 相关阅读:
    python基础
    python基础
    python基础
    在hive下使用dual伪表
    mariadb 压缩包gz安装方式
    linux下 mysql5.7.20安装(精华)
    在开启kerberos 后,hbase存在数据命名空间的问题(解决方案)
    LINUX下解决TIME_WAIT等网络问题
    常用Oracle进程资源查询语句(运维必看)
    linux 下oracle 11g静默安装(完整版)
  • 原文地址:https://www.cnblogs.com/laiyuan/p/7230474.html
Copyright © 2020-2023  润新知