Prevent children to be stopped by SIGTERM

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
1
down vote

favorite












I wrote this script (I removed some useless stuff):



#!/bin/bash

readonly ARGS="$@"

catch()
echo "Sigterm caught"
# Perform some cleanup instructions
# that suppose the child process is still alive
trap - SIGTERM # remove the trap
kill -s SIGINT -- -$$ # Sends SIGINT to child/sub processes
exit 0


main()

trap "catch $5 $4" SIGTERM

./child_process_program # With all arguments needed



main $ARGS


I start this script with the script as follows: timeout "10s" ./my_script <arguments>.



The problem is that sigterm reaches also the child_process_program and so the instructions that suppose the child process is still alive cannot succeed.



I already see a very similar question with answer and tried (unsuccessfully) to change main as follows:



main() 

trap "catch $5 $4" SIGTERM
set -m
./child_process_program & # With all arguments needed




But I did not succeed. Is there a solution to my problem?







share|improve this question























    up vote
    1
    down vote

    favorite












    I wrote this script (I removed some useless stuff):



    #!/bin/bash

    readonly ARGS="$@"

    catch()
    echo "Sigterm caught"
    # Perform some cleanup instructions
    # that suppose the child process is still alive
    trap - SIGTERM # remove the trap
    kill -s SIGINT -- -$$ # Sends SIGINT to child/sub processes
    exit 0


    main()

    trap "catch $5 $4" SIGTERM

    ./child_process_program # With all arguments needed



    main $ARGS


    I start this script with the script as follows: timeout "10s" ./my_script <arguments>.



    The problem is that sigterm reaches also the child_process_program and so the instructions that suppose the child process is still alive cannot succeed.



    I already see a very similar question with answer and tried (unsuccessfully) to change main as follows:



    main() 

    trap "catch $5 $4" SIGTERM
    set -m
    ./child_process_program & # With all arguments needed




    But I did not succeed. Is there a solution to my problem?







    share|improve this question





















      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I wrote this script (I removed some useless stuff):



      #!/bin/bash

      readonly ARGS="$@"

      catch()
      echo "Sigterm caught"
      # Perform some cleanup instructions
      # that suppose the child process is still alive
      trap - SIGTERM # remove the trap
      kill -s SIGINT -- -$$ # Sends SIGINT to child/sub processes
      exit 0


      main()

      trap "catch $5 $4" SIGTERM

      ./child_process_program # With all arguments needed



      main $ARGS


      I start this script with the script as follows: timeout "10s" ./my_script <arguments>.



      The problem is that sigterm reaches also the child_process_program and so the instructions that suppose the child process is still alive cannot succeed.



      I already see a very similar question with answer and tried (unsuccessfully) to change main as follows:



      main() 

      trap "catch $5 $4" SIGTERM
      set -m
      ./child_process_program & # With all arguments needed




      But I did not succeed. Is there a solution to my problem?







      share|improve this question











      I wrote this script (I removed some useless stuff):



      #!/bin/bash

      readonly ARGS="$@"

      catch()
      echo "Sigterm caught"
      # Perform some cleanup instructions
      # that suppose the child process is still alive
      trap - SIGTERM # remove the trap
      kill -s SIGINT -- -$$ # Sends SIGINT to child/sub processes
      exit 0


      main()

      trap "catch $5 $4" SIGTERM

      ./child_process_program # With all arguments needed



      main $ARGS


      I start this script with the script as follows: timeout "10s" ./my_script <arguments>.



      The problem is that sigterm reaches also the child_process_program and so the instructions that suppose the child process is still alive cannot succeed.



      I already see a very similar question with answer and tried (unsuccessfully) to change main as follows:



      main() 

      trap "catch $5 $4" SIGTERM
      set -m
      ./child_process_program & # With all arguments needed




      But I did not succeed. Is there a solution to my problem?









      share|improve this question










      share|improve this question




      share|improve this question









      asked Jun 5 at 21:19









      Briomkez

      1133




      1133

























          active

          oldest

          votes











          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );








           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f448084%2fprevent-children-to-be-stopped-by-sigterm%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes










           

          draft saved


          draft discarded


























           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f448084%2fprevent-children-to-be-stopped-by-sigterm%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?