shell进阶--信号,finish函数

本文详细介绍了Shell中的各种信号,如SIGHUP、SIGINT、SIGKILL和SIGTERM等,以及如何通过trap命令捕获并自定义信号处理,特别是讨论了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信号SIGCHLD:子进程终止时,内核发送信号给父进程(被省略)
10信号SIGUSR1和12SIGUSR2:默认是提供给用户自定义的信号

2.信号捕捉trap

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

trap '触发指令' 信号进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作
trap '' 信号忽略信号的操作
trap '-' 信号恢复原信号的操作
trap -p列出自定义信号操作
trap finish EXIT 当脚本退出时,执行finish函数<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值