bash-trap

    35熱度

    6回答

    當我在bash中使用「陷阱」命令時,給定信號的先前陷阱被替換。 對於同一信號有沒有辦法讓多個陷阱失敗?

    5熱度

    1回答

    我見過監視程序或者在腳本中使用'ps'或'服務狀態(在Linux上)「定期檢查進程狀態,或者在C/C++中分支並等待進程... I想知道是否有可能在陷阱中使用bash,並在SIGCLD收到時重新啓動子進程? 我已經測試在RedHat Linux基本套房配有以下想法(當然它不工作...) #!/bin/bash set -o monitor # can someone explain this?

    12熱度

    2回答

    我在運行子/後臺進程時無法捕獲信號。 這裏是我的簡單的bash腳本: #!/bin/bash echo "in child" trap "got_signal" SIGINT function got_signal { echo "trapped" exit 0 } while [ true ]; do sleep 2 done 當運行這個後來

    6熱度

    1回答

    我有一堆通用清理代碼,需要在某個bash腳本退出時執行,無論它是正常退出還是中斷。我想我會用trap "..." EXIT pseudosignal來達到這個目的。 除了通用清理的東西,還有一個特定的清理應該只在腳本正常完成時完成。我想我可以通過讓'陷阱'塊測試一個變量來觸發這種情況,如下所示: #!/bin/bash done=false; trap "{ #generic

    21熱度

    2回答

    可能重複: Identifying received signal name in bash shell script 當使用像trap func_trap INT TERM EXIT有: func_trap() { ...some commands... } 是否有功能塊的方式來檢測這陷阱已經打電話給它? 喜歡的東西: func_trap() { if signal =

    1熱度

    1回答

    我有一個調用的bash函數必須在第一次被調用後由EXIT陷阱調用。該函數在陷阱函數退出後立即再次設置陷阱。 echo 0 > .i function launchNextExperiment { (# Run in nested subshell # Implement a mutex lock, not shown j=`cat .i` if [ $j -

    1熱度

    1回答

    我在閱讀How do we capture CTRL^C - Perl Monks,但我似乎無法獲得正確的信息來幫助解決我的問題。 事情是 - 我有一個無限循環,並且'多行'打印輸出到終端(我知道我會被告知使用ncurses而不是 - 但對於簡短腳本,我更舒適寫一堆printf s)。我想以這種方式捕捉Ctrl-C,在這個多行打印輸出完成後,腳本將僅終止。 的腳本(Ubuntu Linux操作系統

    7熱度

    1回答

    我知道,你可以使用「來電顯示」,以獲得的功能回溯在bash來電: #! /bin/bash Backtrace() { echo "Backtrace is:" i=0 while caller $i do i=$((i+1)) done } myFunc() { Backtrace } myFunc 打印: B

    11熱度

    2回答

    我想捕獲的信號從Script-A.sh發送到Script-B.sh 所以Script-A.sh我用命令 (SIGINT發送到Script-B.sh) 殺-2 $ PID_Script-B.sh 而且在Script-B.sh我捕捉信號和通話功能的清潔 陷阱 '乾淨' 2 它不起作用,取而代之的是Script-B.sh立即死亡,而不執行Clean! 我也注意到的是,如果我想從終端發送SIGINT到捕獲

    7熱度

    3回答

    我一直在到處尋找,我開始相信,有沒有辦法做到這一點除了具有全局變量,但我相信大師在stackoverflow.com也許能夠幫助我: 有任何方式在bash中通過傳遞參數來捕獲函數? 例如,trap <function_name> <arg_1> <arg_2> SIGINT?