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

  • Posts: 916

    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:

     


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

     

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training