shell进阶--信号,finish函数

[](()1.各种信号


1信号SIGHUP:hub 进程重新读取对应的配置文件(不重启计算机,就可以生效)

2信号SIGINT :中断------ctrl+c 就会触发该信号int

3信号SIGQUIT:从键盘上杀死进程的信号 ctrl+\ 也就是发送QUIT信号(只对终端内的进程有效)

9信号SIGKILL:必杀信号,强制杀死进程(无法捕捉信号),KILL信号不做善后,例如:临时清理文件,刷新磁盘等

15信号SIGTERM:终止进程,(安全),有善后

18信号SIGCONT:让进程从stopped状态恢复—进入就绪队列

19信号SIGSTOP:必停信号,让进程处于stopped状态,为shell提供

20信号SIGTSTP:让进程处于stopped状态,相当于ctrl+z就是发送tstp信号

21信号SIGTTIN:后台进程读取终端数据时,(默认方式–终止该后台进程)

22进程SIGTTOU:后台进程输出数据时(默认方式–终止该后台进程)

17信号SIGCH 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 LD:子进程终止时,内核发送信号给父进程(被省略)

10信号SIGUSR1和12SIGUSR2:默认是提供给用户自定义的信号

[](()2.信号捕捉trap


Trap捕获某个信号,不去做原有的操作,只操作自己指定的操作

trap '触发指令' 信号进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作

trap '' 信号忽略信号的操作

trap '-' 信号恢复原信号的操作

trap -p列出自定义信号操作

trap finish EXIT 当脚本退出时,执行finish函数

例如:

捕获2信号(int)

Int 就是2信号

单引号引起来—触发指令

shell进阶--信号,finish函数_第1张图片

按ctrl+c就会触发指令

shell进阶--信号,finish函数_第2张图片

Trap ‘’ 信号 不会执行任何操作

shell进阶--信号,finish函数_第3张图片

shell进阶--信号,finish函数_第4张图片

Trap ‘’ 信号 将信号还原

shell进阶--信号,finish函数_第5张图片

shell进阶--信号,finish函数_第6张图片

[](()3.finish函数


脚本执行一半就退出----就会产生一些垃圾文件

为了避免垃圾文件的产生

所以就用finish函数 及exit命令

用这种方式处理异常退出

Finish中写一些清理临时文件的操作

Trap finish exit 当执行exit退出时,就会触发finish函数

你可能感兴趣的:(Java,经验分享,架构,java)