Mac OS X。什么是 "Trace/BPT trap: 5"
Mac OS X 应用程序突然退出时,“Trace/BPT 陷阱:5"是什么意思? 在网上搜索我只发现很多应用程序都是这样退出的(ruby、postgres),但只能找到特定于应用程序的解决方案.但我想了解这是什么以及它是如何引起的. 我还发现这似乎只是 Mac OS X 上的问题(没有发现任何关于 linux 或 windows 发生这种情况的提及).我相信这与线程有关,但我不确定. 解决方案 这与无法找到/加载特定于 OSX 的 dylib 有关.它找不到哪一个,因为您发现它是特定于应用程序的.
1672 2022-07-19
编程技术问答社区
巴什。保存和恢复陷阱状态?管理陷阱的多个处理程序的简单方法?
覆盖bash陷阱处理程序的好方法,这些方法不会永久践踏可能或可能尚未设置的现有现有的处理程序?如何动态管理陷阱例程的任意链呢? 有没有办法保存陷阱处理程序的当前状态,以便以后可以恢复? 解决方案 在bash 中保存并恢复陷阱处理程序状态 我会提交以下堆栈实现以跟踪和恢复陷阱状态.使用此方法,我能够推动陷阱更改,然后在我完成时将它们弹出.这也可以用来将许多陷阱例程连胜. 请参阅以下源文件(.trap_stack.sh) #!/bin/bash trap_stack_name() { local sig=${1//[^a-zA-Z0-9]/_} echo "__trap_stack_$sig" } extract_trap() { echo ${@:3:$(($#-3))} } get_trap() { eval echo $(extract_trap `trap -p $1`) } trap_push() { local new_tr
242 2022-07-19
编程技术问答社区
巴什。Trap while piping的工作是否符合预期?
这是用于问题演示的最少代码:http://pastebin.com/5TXDpSh5 #!/bin/bash set -e set -o pipefail function echoTraps() { echo "= on start:" trap -p trap -- 'echo func-EXIT' EXIT echo "= after set new:" trap -p # we can ensure after script done - file '/tmp/tmp.txt' was not created trap -- 'echo SIG 1>/tmp/tmp.txt' SIGPIPE SIGHUP SIGINT SIGQUIT SIGTERM } trap -- 'echo main-EXIT1' EXIT echo "===== subshell trap" ( echoTraps; ) echo "==
284 2022-07-19
编程技术问答社区
如何从脚本到脚本发送SIGINT信号?BASH
我想捕获从 Script-A.sh 发送到 Script-B.sh 的信号所以在 Script-A.sh 我使用命令 (发送 SIGINT 到 Script-B.sh) 杀死 -2 $PID_Script-B.sh 在 Script-B.sh 中我捕捉到信号并调用函数 Clean 陷阱'清洁'2 它不起作用,而是立即杀死 Script-B.sh 而不执行 Clean !! 我还注意到,如果我想从终端发送 SIGINT 到任何捕获它的脚本,ctrl-c 将被正确捕获,但如果我通过命令 kill -2 $pid_of_script 指定信号则不会 关于发送 SIGINT (ctrl-c VS kill -2 $pid_of_script) 的两种方法之间的区别,以及如何将 SIGINT 从脚本发送到另一个? 问候, 调试器 解决方案 我能够重现您报告的行为.我的假设是,由于脚本正在运行 非交互式 shell(作为脚本的子级),因此作为键
1288 2022-07-19
编程技术问答社区
如何在脚本的树丛中传播一个信号?巴什
我有一个由主要的脚本的剧本,由主要的一个 我想捕获主脚本中的信号ctrl-c并将其传播给其他 其他脚本应该捕获此信号(来自主脚本)并执行一些清理... 我试图向孩子们发送kill -s SIGINT,但他们似乎他们无法 捕获信号(即使在子脚本上定义trap 'Cleanup' SIGINT) 任何线索如何实现这个? 问候, 调试器 解决方案 以下示例演示了在启动执行自己事物的两个子项(也是sleep 5)之后做某事(sleep 5)的父脚本.当父母父地退出(无论出于何种原因)时,它向孩子终止(不SIGINT,终止由SIGTERM发出信号,也是默认的kill信号).然后,孩子们在接收到SIGTERM时做他们的事情.如果孩子们是自己的脚本,我建议您将陷阱更改为EXIT的陷阱,以便无论其终止的原因是什么(只要它是令人难步的方式,孩子们都会清理陷阱. 注意我使用wait. Bash在收到信号时不会中断运行非构建命令.相反,它等待它们在完成命令后填
218 2022-07-17
编程技术问答社区