Welcome to the Linux Foundation Forum!

Exercise 4.1 Examining Signal Priorities and Execution

How do I test the signals program?

I am not getting the results I expect:

My assumptions: ---------------------------------------------

I compile signals.c (no errors) & run signals exe 

./signals

signals program runs & SHOULD (I think) sit waiting for incoming signals 

I send to the signals process from another Terminal session  using kill -n(thesignal) nnnn(the process)

and the program spits out a display when it gets the signal

---------------------------------------------------------------------------------

However I run ./signals & it displays & terminates:

phil@weeminty ~/Dropbox/LFS201/LABS $ gcc signals.c

phil@weeminty ~/Dropbox/LFS201/LABS $ ./signals 

Installing signal handler and Raising signal for signal number:

   1   2   3   4   5   6   7   8  --  10  11  12  13  14  15  16

  17  18  --  20  21  22  23  24  25  26  27  28  29  30  31  --  --  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48

  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64

Signal  Number(Times Processed)

--------------------------------------------

   1:  1     2:  1     3:  1     4:  1     5:  1     6:  1     7:  1     8:  1  

   9:  0    10:  1    11:  1    12:  1    13:  1    14:  1    15:  1    16:  1  

  17:  1    18:  0    19:  0    20:  1    21:  1    22:  1    23:  1    24:  1  

  25:  1    26:  1    27:  1    28:  1    29:  1    30:  1    31:  1    32:  0  

  33:  0    34:  3    35:  3    36:  3    37:  3    38:  3    39:  3    40:  3  

  41:  3    42:  3    43:  3    44:  3    45:  3    46:  3    47:  3    48:  3  

  49:  3    50:  3    51:  3    52:  3    53:  3    54:  3    55:  3    56:  3  

  57:  3    58:  3    59:  3    60:  3    61:  3    62:  3    63:  3    64:  3  



History: Signal  Number(Count Processed)

--------------------------------------------

   4(1)   5(1)   7(1)   8(1)  11(1)  31(1)   1(1)   2(1)

   3(1)   6(1)  10(1)  12(1)  13(1)  14(1)  15(1)  16(1)

  17(1)  20(1)  21(1)  22(1)  23(1)  24(1)  25(1)  26(1)

  27(1)  28(1)  29(1)  30(1)  34(1)  34(2)  34(3)  35(1)

  35(2)  35(3)  36(1)  36(2)  36(3)  37(1)  37(2)  37(3)

  38(1)  38(2)  38(3)  39(1)  39(2)  39(3)  40(1)  40(2)

  40(3)  41(1)  41(2)  41(3)  42(1)  42(2)  42(3)  43(1)

  43(2)  43(3)  44(1)  44(2)  44(3)  45(1)  45(2)  45(3)

  46(1)  46(2)  46(3)  47(1)  47(2)  47(3)  48(1)  48(2)

  48(3)  49(1)  49(2)  49(3)  50(1)  50(2)  50(3)  51(1)

  51(2)  51(3)  52(1)  52(2)  52(3)  53(1)  53(2)  53(3)

  54(1)  54(2)  54(3)  55(1)  55(2)  55(3)  56(1)  56(2)

  56(3)  57(1)  57(2)  57(3)  58(1)  58(2)  58(3)  59(1)

  59(2)  59(3)  60(1)  60(2)  60(3)  61(1)  61(2)  61(3)

  62(1)  62(2)  62(3)  63(1)  63(2)  63(3)  64(1)  64(2)

  64(3)

phil@weeminty ~/Dropbox/LFS201/LABS $ ps -elf |grep signals

0 S phil      9893  9846  0  80   0 -  3556 pipe_w 10:10 pts/1    00:00:00 grep --color=auto signals

phil@weeminty ~/Dropbox/LFS201/LABS $ 

I have downloaded the latest version from

https://training.linuxfoundation.org/cm/LFS201/

User LFTraining & pwPenguin2014

with the same result (above).

 

Tried it as a background process: ./signals &

Tried it using sudo": sudo ./signals

tried  gcc signals.c -o mysignals

thus:

phil@weeminty ~/Dropbox/LFS201/LABS $ gcc signals.c -o mysignals

phil@weeminty ~/Dropbox/LFS201/LABS $ l

a.out*  mysignals*  signals*  signals.c  was_signals.c

phil@weeminty ~/Dropbox/LFS201/LABS $ ./mysignals

Installing signal handler and Raising signal for signal number:

   1   2   3   4   5   6   7   8  --  10  11  12  13  14  15  16

  17  18  --  20  21  22  23  24  25  26  27  28  29  30  31  --  --  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48

  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64

Signal  Number(Times Processed)

--------------------------------------------

   1:  1     2:  1     3:  1     4:  1     5:  1     6:  1     7:  1     8:  1  

   9:  0    10:  1    11:  1    12:  1    13:  1    14:  1    15:  1    16:  1  

  17:  1    18:  0    19:  0    20:  1    21:  1    22:  1    23:  1    24:  1  

  25:  1    26:  1    27:  1    28:  1    29:  1    30:  1    31:  1    32:  0  

  33:  0    34:  3    35:  3    36:  3    37:  3    38:  3    39:  3    40:  3  

  41:  3    42:  3    43:  3    44:  3    45:  3    46:  3    47:  3    48:  3  

  49:  3    50:  3    51:  3    52:  3    53:  3    54:  3    55:  3    56:  3  

  57:  3    58:  3    59:  3    60:  3    61:  3    62:  3    63:  3    64:  3  



History: Signal  Number(Count Processed)

--------------------------------------------

   4(1)   5(1)   7(1)   8(1)  11(1)  31(1)   1(1)   2(1)

   3(1)   6(1)  10(1)  12(1)  13(1)  14(1)  15(1)  16(1)

  17(1)  20(1)  21(1)  22(1)  23(1)  24(1)  25(1)  26(1)

  27(1)  28(1)  29(1)  30(1)  34(1)  34(2)  34(3)  35(1)

  35(2)  35(3)  36(1)  36(2)  36(3)  37(1)  37(2)  37(3)

  38(1)  38(2)  38(3)  39(1)  39(2)  39(3)  40(1)  40(2)

  40(3)  41(1)  41(2)  41(3)  42(1)  42(2)  42(3)  43(1)

  43(2)  43(3)  44(1)  44(2)  44(3)  45(1)  45(2)  45(3)

  46(1)  46(2)  46(3)  47(1)  47(2)  47(3)  48(1)  48(2)

  48(3)  49(1)  49(2)  49(3)  50(1)  50(2)  50(3)  51(1)

  51(2)  51(3)  52(1)  52(2)  52(3)  53(1)  53(2)  53(3)

  54(1)  54(2)  54(3)  55(1)  55(2)  55(3)  56(1)  56(2)

  56(3)  57(1)  57(2)  57(3)  58(1)  58(2)  58(3)  59(1)

  59(2)  59(3)  60(1)  60(2)  60(3)  61(1)  61(2)  61(3)

  62(1)  62(2)  62(3)  63(1)  63(2)  63(3)  64(1)  64(2)

  64(3)

phil@weeminty ~/Dropbox/LFS201/LABS $ ps -elf |grep mysignals

0 S phil     10941  9846  0  80   0 -  3556 pipe_w 10:37 pts/1    00:00:00 grep --color=auto mysignals

phil@weeminty ~/Dropbox/LFS201/LABS $ 

 

--------------------------------------------------------------------------------------------------

Comments

  • coop
    coop Posts: 915

    HI:

    The excercise is doing exactly what it says it is doing.  It is not designed to sit and wait for any user input such as sending a signal to it.  It sends a boatload of signals while they are blocked and then unblocks and records what happens.  Please read the description after the code source, which says:

     


    Prints out statistics including: – The total number of times each signal was received. – The order in which the signals were received, noting each time the total number of times that signal had been received up to that point.

     

Categories

Upcoming Training