HPUX signal[5]



signal in anderen Kapiteln des hpux Handbuch: signal.3f signal.2




 signal(5)                                                         signal(5)





 NAME
      signal - Description of signals

 DESCRIPTION
      HP-UX supports multiple signal interfaces (see sigaction(2),
      signal(2), sigvector(2), bsdproc(2), and sigset(2V)) that allow a
      process to specify the action taken upon receipt of a signal. All
      supported signal interfaces require specification of a signal, as
      designated by the Name and Number shown below.  Signal specification
      can be any of the following except SIGKILL or SIGSTOP, which cannot be
      caught or ignored:

      center; lb lb lb lb lf4 c lp-1 i lw(3.5i).
      Name Number    Notes     Meaning _ SIGHUP    01   A    hangup
      SIGINT    02   A    interrupt SIGQUIT   03   A,B  quit
      SIGILL    04   A,B,C     illegal instruction
      SIGTRAP   05   A,B,C     trace trap SIGABRT   06   A,B  software
      generated abort; see abort(3C) SIGIOT    06   A,B  software generated
      signal SIGEMT    07   A,B  software generated signal
      SIGFPE    08   A,B  floating point exception
      SIGKILL   09   A,D,E,F   kill SIGBUS    10   A,B  bus error
      SIGSEGV   11   A,B  segmentation violation SIGSYS    12   A,B  bad
      argument to system call SIGPIPE   13   A    write on a pipe with no
      one to read it SIGALRM   14   A    alarm clock; see alarm(2)
      SIGTERM   15   A    software termination signal
      SIGUSR1   16   A    user defined signal 1 SIGUSR2   17   A    user
      defined signal 2 SIGCHLD   l8   G    death of a child (see WARNINGS
      below) SIGCLD    l8   G    death of a child (see WARNINGS below)
      SIGPWR    19   C,G  power fail (see WARNINGS below)
      SIGVTALRM 20   A    virtual timer alarm; see getitimer(2)
      SIGPROF   21   A    profiling timer alarm; see getitimer(2)
      SIGIO     22   G    asynchronous I/O signal; see select(2)
      SIGWINCH  23   G    window size change; see termio(7)
      SIGSTOP   24   D,E,H     stop SIGTSTP   25   H    stop signal
      generated from keyboard SIGCONT   26   F,G  continue after stop
      SIGTTIN   27   H    T{ background read attempted from control terminal
      T} SIGTTOU   28   H    T{ background write attempted to control
      terminal T} SIGURG    29   G    urgent data arrived on an I/O channel
      SIGLOST   30   A    file lock lost (NFS file locking)

      The letters in the Notes column in the table above indicate the action
      taken when the signal is received, and any special conditions on its
      use:

           A       The default action is to terminate the process.

           B       The default action of terminating the process also
                   generates a core image file if possible.

           C       The action is not reset to SIG_DFL before calling the
                   signal-catching function.



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





           D       The signal cannot be ignored.

           E       The signal cannot be caught.

           F       The signal will not be held off from a stopped process.

           G       The default action is to ignore the signal.

           H       The default action is to stop the process.

      All signal interfaces allow specification of an action that determines
      what to do upon the receipt of a signal, and should be one of the
      following:

           SIG_DFL     Execute the default action, which varies depending on
                       the signal as described above:

                            A    Terminate the receiving process with all of
                                 the consequences outlined in exit(2).

                            B    If following conditions are met, generate a
                                 core image file (see core(4)) in the
                                 current working directory of the receiving
                                 process:

                                      o  The effective user ID and the real
                                         user ID of the receiving process
                                         are equal.

                                      o  The effective group ID and the real
                                         group ID of the receiving process
                                         are equal.

                                      o  A regular file named core does not
                                         exist and can be created, or exists
                                         and is writable.

                                 If the file is created, it has the
                                 following properties:

                                      o  The file mode is 0666, modified by
                                         the file creation mode mask (see
                                         umask(2)).

                                      o  The file user ID is equal to the
                                         effective user ID of the receiving
                                         process.

                                      o  The file group ID is equal to the
                                         effective group ID of the receiving
                                         process.



 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





                            G    Ignore the signal.  Do not terminate or
                                 stop the receiving process.

                            H    Stop the receiving process.  While a
                                 process is stopped, any additional signals
                                 sent to the process are suspended until the
                                 process is restarted (except those marked
                                 with Note F above, which are processed
                                 immediately).  However, when the process is
                                 restarted, pending signals are processed.
                                 When a process that is in an orphaned
                                 process group (see glossary(9)) receives a
                                 SIGTSTP, SIGTTIN, or SIGTTOU signal, the
                                 process is not stooped because a process in
                                 an orphaned process group is not allowed to
                                 stop.  Instead, a SIGHUP signal is sent to
                                 the process, and the SIGTSTP, SIGTTIN, or
                                 SIGTTOU is discarded.

           SIG_IGN     Ignore the signal.
                       When one of the supported signal interface routines
                       is used to set the action of a signal to SIG_IGN and
                       an instance of the signal is pending, the pending
                       signal is cleared.

                            D    Signals marked with Note D above cannot be
                                 ignored.

      address     Catch the signal.
                  Upon receipt of the signal, if signal() is used to set the
                  action, reset the action for the signal caught to SIG_DFL
                  (except signals marked with Note C).  Then, call the
                  signal-catching function to which address points, and
                  resume executing the receiving process at the point where
                  it was interrupted.  Signal interface routines other than
                  signal() normally do not reset the action for the signal
                  caught.  However, sigaction() and sigvector() provide a
                  way of specifying this behavior (see sigaction(2) or
                  sigvector(2)).

                  The signal-catching function is called with the following
                  three parameters:

                       sig     The signal number.

                       code    A word of information usually provided by the
                               hardware.

                       scp     A pointer to the machine-dependent structure
                               sigcontext defined in <signal.h>.




 Hewlett-Packard Company            - 3 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





                  Depending on the value of sig, code can be zero and/or scp
                  can be NULL.  The meanings of code and scp and the
                  conditions determining when they are other than zero or
                  NULL are implementation-dependent (see DEPENDENCIES
                  below).  It is possible for code to always be zero, and
                  scp to always be NULL.

                  The pointer scp is valid only during the context of the
                  signal-catching function.

                  Optional parameters can be omitted from the signal-
                  catching function parameter list, in which case the
                  signal-catching function is exactly compatible with UNIX
                  System V.  Truly portable software should not use the
                  optional parameters in signal-catching routines.

                  Upon return from the signal-catching function, the
                  receiving process resumes execution at the point where it
                  was interrupted.

                  When a signal is caught during the execution of system
                  calls such as read(), write(), open(), or ioctl() on a
                  slow device (such as a terminal, but not a file), during a
                  pause() system call or a wait() system call that does not
                  return immediately because a previously stopped or zombie
                  process already exists, the signal-catching function is
                  executed and the interrupted system call returns a -1 to
                  the calling process with errno set to EINTR.

             C    If the signal is marked with Note C above, the action is
                  not reset to SIG_DFL before calling the signal-catching
                  function.  Furthermore, the action is not reset if any
                  signal interface routine other than signal() was used to
                  set the action.  See the description of signal catching
                  above.

             E    If the signal is marked with Note E above, the signal
                  cannot be caught.

      When any stop signal (SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU) is generated
      for a process, pending SIGCONT signals for that process are discarded.
      Conversely, when SIGCONT is generated for a process, all pending stop
      signals for that process are discarded.  When SIGCONT is generated for
      a stopped process, the process is continued, even if the SIGCONT
      signal is blocked or ignored.  If SIGCONT is blocked and not ignored,
      the process remains pending until it is either unblocked or a stop
      signal is generated.

      SIGKILL is sent by the system if an exec() system call is unsuccessful
      and the original program has already been deleted.




 Hewlett-Packard Company            - 4 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





 WARNINGS
      The signals SIGCLD and SIGPWR behave differently than those described
      above.

      The actions for these signals is modified as follows:

           SIGCLD         Setting the action for SIGCLD to SIG_IGN in a
                          parent process prevents exiting children of the
                          calling process from creating a zombie process.
                          If the parent process executes the wait()
                          function, the calling process blocks until all of
                          the child processes of the calling processes
                          terminate.  The wait() function then returns a
                          value of -1 with errno set to ECHILD (see
                          wait(2)).

                          If one of the signal interface routines is used to
                          set the action for SIGCLD to be caught (that is, a
                          function address is supplied) in a process that
                          currently has terminated (zombie) children, a
                          SIGCLD signal is delivered to the parent process
                          immediately.  Thus, if the signal-catching
                          function reinstalls itself, the apparent effect is
                          that any SIGCLD signals received due to the death
                          of children while the function is executing are
                          queued and the signal-catching function is
                          continually reentered until the queue is empty.
                          Note that the function must reinstall itself after
                          it calls wait(), wait3(), or waitpid().  Otherwise
                          the presence of the child that caused the original
                          signal causes another signal immediately,
                          resulting in infinite recursion.

                          When processing a pipeline, the Bourne shell (see
                          sh-bourne(1)) makes the last process in the
                          pipeline the parent of the preceding processes.
                          Job control shells including C shell, Korn shell
                          and the POSIX shell (see csh(1), ksh(1), and sh-
                          posix(1)) make the shell itself the parent of all
                          processes in the pipeline.  Therefore, a process
                          that can receive data from a pipe should not
                          attempt to catch SIGCLD.

           SIGPWR         The SIGPWR signal is sent to all processes after a
                          power interruption when power is restored and the
                          system has done all necessary reinitialization.
                          Processes restart by catching (or ignoring)
                          SIGPWR.

                          Applications that wish to recover from power
                          failures should catch SIGPWR and take whatever



 Hewlett-Packard Company            - 5 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





                          necessary steps to reinitialize itself.

                          Some implementations do not generate SIGPWR.  Only
                          systems with nonvolatile memory can recover from
                          power failures.

 DEPENDENCIES
    Series 300/400
      The SIGPWR signal is not currently generated.

      The code word is always zero for all signals except SIGILL and SIGFPE.
      For SIGILL, code has the following values:

           0    Illegal instruction;
           6    Check instruction;
           7    TRAPV;
           8    Privilege violation.

      Refer to the MC680xx processor documentation for more detailed
      information about the meaning of the SIGILL errors.

      For SIGFPE, code has the following values:

           0       Software floating point exception;
           5       Integer divide-by-zero.
           0x8xxxxxxx
                   Any value with the high-order bit set indicates an
                   exception while using the HP98248 floating-point
                   accelerator.  The value of (code &~ 0x80000000) is the
                   value of the HP98248 status register.  Refer to HP98248
                   documentation for more detailed information.
           other   any other value indicates an exception while using the MC
                   68881 or MC68882 floating point coprocessor.  The value
                   of code is the value of the MC68881 or MC68882 status
                   register.  Refer to the MC68881 documentation for more
                   detailed information.

    Series 700
      The signal SIGPWR is not currently generated.

    Series 700/800
      The structure pointer scp is always defined.

      The code word is always zero for all signals except SIGILL and SIGFPE.
      For SIGILL, code has the following values:

            8     Illegal instruction trap;

            9     Break instruction trap;





 Hewlett-Packard Company            - 6 -     HP-UX Release 9.0: August 1992






 signal(5)                                                         signal(5)





           10     Privileged operation trap;

           11     Privileged register trap.

      For SIGFPE, code has the following values:

           12     Overflow trap;

           13     Conditional trap;

           14     Assist exception trap;

           22     Assist emulation trap.

      Refer to the Series 800 processor documentation provided with your
      system for more detailed information about the meaning of these
      errors.

      The Instruction Address Offset Queue (program counter) is not advanced
      when a trap occurs on Series 800 systems.  If a signal generated by a
      hardware trap is masked or has its signal action set to SIG_IGN, the
      program loops infinitely since the instruction causing the trap is
      re-executed, causing the trap again.  If the signal is received by a
      signal-catching function in the user program, the instruction that
      caused the trap is re-executed upon return from the signal-catching
      function unless program flow is altered by the signal-catching
      function.  For example, the longjmp() routine (see setjmp(3C)) can be
      called.  Using longjmp() ensures software portability across different
      hardware architectures.

 AUTHOR
      signal was developed by HP, AT&T, and the University of California,
      Berkeley.

 SEE ALSO
      kill(1), init(1M), bsdproc(2), exit(2), kill(2), lseek(2), pause(2),
      sigaction(2), signal(2), sigvector(2), wait(2), sigset(2V), abort(3C),
      setjmp(3C).

 STANDARDS CONFORMANCE
      <signal.h>: SVID2, XPG2,













 Hewlett-Packard Company            - 7 -     HP-UX Release 9.0: August 1992