首页 > 其他分享 >sh脚本:trap "kill -- -$$" EXIT和exec的用法

sh脚本:trap "kill -- -$$" EXIT和exec的用法

时间:2023-07-12 20:36:38浏览次数:30  
标签:脚本 exec -- 命令 sh kill trap

linux环境下,在sh脚本中启动了一个javav程序,ctrl+c结束程序时,未能正常结束另一个程序。为了解决上述问题,可以在sh中添加trap "kill -- -$$" EXIT   或使用 exec 执行java程序。

  1. trap "kill -- -$$" EXIT

    • 功能:该命令用于设置一个信号处理程序,当脚本退出时执行特定命令。在这种情况下,命令是kill -- -$$,它会向当前进程组发送一个SIGTERM信号,以杀死整个进程组。
    • 共同点:trap命令用于捕获或处理信号,并定义在脚本退出时要执行的命令。
    • 区别:与exec命令相比,trap并不是替换当前进程,而只是在脚本退出时执行一段指定的命令。
  2. exec

    • 功能:exec命令用于替换当前进程,将新的命令或程序作为当前进程来执行。它会关闭当前脚本的进程,并用新的进程来取代它。
    • 共同点:与trap命令不同,exec命令并不是用于处理信号,而是重新启动或切换到另一个命令或程序的执行上下文。
    • 区别:exec命令用于替换当前进程,而trap命令用于在脚本退出时执行特定命令。

一般使用场景如下:

  • trap "kill -- -$$" EXIT:在脚本中使用该命令可以确保在脚本退出时,无论是正常退出还是异常终止,都能执行特定的清理操作。例如,关闭打开的文件、释放资源或发送通知等。
  • exec:常用于脚本内部的逻辑切换。通过使用exec命令,脚本可以将控制权转移到其他命令或程序上,并在那里继续执行。这可以用于重启脚本本身或启动另一个脚本或程序等情况。
     

标签:脚本,exec,--,命令,sh,kill,trap
From: https://www.cnblogs.com/feng-gamer/p/17548743.html

相关文章

  • 使用SQL语句写递归查询
    要编写递归SQL语句,你可以使用通用表达式(CommonTableExpressions,CTE)和递归查询功能。CTE允许在SQL查询中定义临时的命名查询,并且可以在查询内部引用自身。以下是一个示例来演示如何编写递归SQL语句:假设有一个员工表employees,其中包含列id、name和manager_id,表示员工......
  • 20230712练习总结
    AGC009DUninity如果构造一棵点分树,答案是\(\logn\),这是答案上界。将问题转化为每次将若干棵Uninity为\(k\)的树连接到一个点上时将点打上\(k+1\)的\(tag\)。看题面有一个很显然的结论就是两个\(tag=k\)的点间的路径上一定有一个\(tag>k\)。考虑记录\(f_u\)表示......
  • 【文章】Markdown(2023-07-12更新)
    Markdown博客食用效果更佳欢迎大家指出错误并联系这个蒟蒻你是第个看到这篇文章的人。更新日志2023-07-1220:02文章完成前言本蒟蒻最近看了\(\operatorname{QOJ}\)中的FAQ,然后发现了一件很神奇的事:\(\operatorname{FAQ}\)中博客部分写了个什么玩意?所以来补充一下。......
  • 二分图学习笔记
    定义对于一个无向图\(G=(V,E)\),如果存在点集\(A,B\),满足\(a\neq\varnothing\),\(b\neq\varnothing\),\(A\capB=\varnothing\),\(A\cupB=V\),且\(\forallu,v\inA\)或\(u,v\inB\),都有\((u,v)\notinE\),则称这个图是一个二分图,\(A\)称为这个二分图的左部,\(B\)称为右部。......
  • 05-虚拟内存
    05-虚拟内存5.1虚拟内存的起因理想中的存储器更大、更快、更便宜的非易失性存储器实际中的存储器典型存取速度存储器类型典型容量1nsecregisters<1KB2nseccache1MB10nsecmainmemory64-512MB10msecmagneticdisk5-50G100secmagneti......
  • 04-非连续内存分配
    04-非连续内存分配为什么需要非连续内存分配连续内存分配的缺点1)分配给一个程序的物理内存是连续的2)内存利用率较低3)有外碎片、内碎片的问题非连续内存分配的优点一个程序的物理地址空间是非连续的更好的内存利用和管理允许共享代码与数据(共享库)支持动态加载和动态链接......
  • 半有序排列
    给你一个下标从0开始、长度为n的整数排列nums。如果排列的第一个数字等于1且最后一个数字等于n,则称其为半有序排列。你可以执行多次下述操作,直到将nums变成一个半有序排列:选择nums中相邻的两个元素,然后交换它们。返回使nums变成半有序排列所需的最小操作......
  • NOIP 2023 模拟赛 20230712 C 论剑
    首先是伟大的题面然后是数据范围先解决1-4号数据点1.枚举每个gcd的值p,统计一次答案,得到最小值(期望得分20)\[ans=\min_{p=2}^{\maxa}\sum^n_{i=1}\min(a_i\bmodp,p-(a_i\bmodp)(a>p))\]2.我们可以发现p仅在为质数时不会重复,也可以将p换为质数(期望得分40)两种的时间复......
  • 野指针与空指针
    一、野指针与空指针要注意(1)野指针野指针是一个指向未知(undefine)的,不确定地方的指针."未知的,不确定的",指向的地方可能存在,可能不存在.可能可以访问,也可能不可以访问.对野指针的访问,会有后果?可能可以访问,可能不可以访问(导致非法的内存访问).非法的内存......
  • 力扣-旋转链表
    1.问题描述给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入:1->2->3->4->5->NULL,k=2输出:4->5->1->2->3->NULL解释:向右旋转1步:5->1->2->3->4->NULL向右旋转2步:4->5->1->2->3->NULL 示例2:输入:0->1-&g......