美文网首页
“Linux命令行与shell脚本编程”-控制脚本

“Linux命令行与shell脚本编程”-控制脚本

作者: 刘小白DOER | 来源:发表于2020-09-20 21:37 被阅读0次

        linux利用信号与运行在系统中的进程进行通信。linux系统和应用程序可以生成超过30个信号。常用的有如下几个。

        信号            值                 描述

        1              SIGHUP        挂起进程

        2              SIGINT          终止进程

        3              SIGQUIT       停止进程

        9              SIGKILL        无条件终止进程

        15            SIGTERM      尽可能终止进程

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

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

        19              SIGCCONT    继续运行停止的进程

        bash shell允许用键盘生成两种基本的linux信号。CTRL +C,生成 SIGINT  终止进程,并将其发给当前在shell中运行的所有进程。sleep 9,CTRL +C提前终止。CTRL +Z生成 SIGTSTP     停止或暂停进程,但不是终止进程,可以暂停进程。

    ·    捕获信号,脚本收到trap命令中列出的信号,该信号不再由shell处理,而是有本地处理。

    trap conmamds signals。shell脚本退出时也可以进行捕获,需要在trap后面的信号值是EXIT信号就行。

        后台运行脚本需要在命令后加个&符号就行了,命令作为系统中的一个独立的后台进程运行,会显示shell分配给后台进程的作业号和进程ID(pid)。后台运行时仍然会使用终端显示器来显示STDOUT和STDERR消息。

        nohub命令,终端会话中启动shell脚本,然后让脚本一直以后台模式运行到结束,即使你退出了终端会话。  nohub  ./test.sh & 。r如果关闭会话脚本会忽略终端会话发送来的SIGHUB信号。

        jobs可以查看正在处理的作业。jobs -l可以查看PID号。输出带加号的是默认作业。

        bg命令加上作业号,可以重启停止的作业。默认额作业不需要加作业号。

        调度优先级是内核分配给进程的cpu时间,在linux系统中,由shell启动的所有进程的调度优先级都是相同的。调度优先级是整数,从-20(最高)到19(最低),默认都是以0来启动所有进程。nice命令允许设置命令启动时的优先级。 nice -3 ./ipaddress.sh,但是提高优先级会出错,linux阻止普通用户来提高优先级。renice可以允许改变已经运行命令的优先级。

        at命令。at命令会将作业提交到队列,at的守护进程atd会以后台模式运行,检查队列来运行作业。at的守护进程atd检查系统上的/var/spool/at来获取用at命令已提交的作业,ard每60秒检查这个目录。at -f filename time。atq可以列出哪些命令在等待,atrm+作业号删除等待的作业。

        cron可以定期执行作业。Linux crontab定时任务详细分解  文章中有详细介绍,就不阐述了。

        anacron可以执行在关机期间的作业,不会错过。anacron只会处理位于cron目录的程序,他用时间戳来决定是否在正确的计划间隔内运行了。每个cron目录都一个时间戳文件,位于/var/spool/anacron。anacron不会处理执行时间需求小于一天的脚本,不会执行cron.hourly,

    相关文章

      网友评论

          本文标题:“Linux命令行与shell脚本编程”-控制脚本

          本文链接:https://www.haomeiwen.com/subject/dlmpyktx.html