当前位置: 首页 > 面试题库 >

Linux C捕获终止状态的终止信号

孙经艺
2023-03-14
问题内容

我有一个使用套接字,数据库连接之类的过程。从根本上讲,这是一个服务器过程,在传感器数据和Web界面之间进行中继,因此确保应用程序(如果被终止)正常终止很重要。

如何处理诸如segfaults(至少用于调试)之类的意外异常以及kill信号,以便我可以关闭任何连接并停止任何线程的运行,从而使进程不会留下任何正在使用的东西?


问题答案:

您可以安装信号处理程序来捕获信号-但是在99%的情况下,您只想退出并让Linux OS进行清理-它会很乐意关闭所有文件,套接字,可用内存和关闭线程。

因此,除非您有具体想做的事情,例如在套接字上发送消息,否则您应该退出该过程,而不要尝试捕获信号。



 类似资料:
  • 我试图删除一个带有12个pod的,我可以看到一些pod被困在状态。 我的Kubernetes集群由一个控制平面节点和三个安装在Ubuntu虚拟机上的工作节点组成。 这个问题的原因可能是什么?

  • 终止容器 可以使用 docker container stop 来终止一个运行中的容器。 此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 终止状态的容器可以用 docker container ls -a 命令看到。例如 docker container ls

  • 我想捕捉和处理非终止错误,但使用-ErrorAction SilentlyContinue。我知道我需要使用-ErrorAction-Stop来捕获非终止错误。该方法的问题是,我不希望try脚本块中的代码实际停止。我希望它继续,但处理非终止错误。我也希望它保持沉默。这可能吗?也许我走错了方向。 我想处理的非终止性错误的一个例子是从Get-Childitem访问关键字文件夹的拒绝访问错误。这是一个例

  • 它的工作很好,但当我把它封闭在我的如果不喜欢 这给了我一个例外: org.apache.jasper.jasperexception:/jsp/custmngmt/reports/viewCustomerDepositReportCriteriaForOldReceipt.jsp(356,0)未终止 我已经测试了条件,它确实输入了if部分,但在通过form标记时会导致异常。我不明白。请帮帮我。

  • 我正在使用power shell控制台运行以下power外壳脚本: 这将打印错误。然后继续并打印“创建的新对象”和“结束”。所以我假设这是一个非终结性错误。 但是,如果我将try catch块放在新对象周围,如下所示: 在这种情况下,捕获块被击中并写入异常消息。 我的问题是: < li >这是一个非终止错误吗?这看起来像是一个非终止性错误,因为在错误之后继续执行(当没有try catch块时)。

  • 在 中,尝试捕获最终阻止的工作原理是什么? 所以如果有例外,我知道它会跳到捕获块,然后跳到最后的块。 但是如果没有错误,catch块不会运行,但是finally块会运行吗?