diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 9e3b14807a03..589177171757 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1,8 +1,9 @@ # $FreeBSD$ MAN9= at_shutdown.9 at_fork.9 at_exit.9 cd.9 copy.9 devfs_add_devswf.9 \ - devfs_link.9 fetch.9 ifnet.9 intro.9 panic.9 rtalloc.9 rtentry.9 \ - scsiconf.9 sd.9 sleep.9 spl.9 st.9 store.9 style.9 timeout.9 uio.9 + devfs_link.9 fetch.9 ifnet.9 intro.9 panic.9 psignal.9 rtalloc.9 \ + rtentry.9 scsiconf.9 sd.9 sleep.9 spl.9 st.9 store.9 style.9 \ + timeout.9 uio.9 MLINKS+= copy.9 copyin.9 copy.9 copyout.9 copy.9 copystr.9 copy.9 copyinstr.9 MLINKS+= fetch.9 fubyte.9 fetch.9 fusword.9 fetch.9 fuswintr.9 fetch.9 fuword.9 @@ -10,6 +11,7 @@ MLINKS+= at_shutdown.9 rm_at_shutdown.9 MLINKS+= at_exit.9 rm_at_exit.9 MLINKS+= at_fork.9 rm_at_fork.9 MLINKS+= ifnet.9 ifaddr.9 ifnet.9 ifqueue.9 ifnet.9 if_data.9 +MLINKS+= psignal.9 pgsignal.9 psignal.9 gsignal.9 MLINKS+= rtalloc.9 rtalloc_ign.9 rtalloc.9 rtalloc1.9 MLINKS+= sleep.9 tsleep.9 sleep.9 wakeup.9 MLINKS+= spl.9 splbio.9 spl.9 splclock.9 spl.9 splhigh.9 spl.9 splimp.9 diff --git a/share/man/man9/psignal.9 b/share/man/man9/psignal.9 new file mode 100644 index 000000000000..9f32d9bebd2b --- /dev/null +++ b/share/man/man9/psignal.9 @@ -0,0 +1,138 @@ +.\" $NetBSD: psignal.9,v 1.1 1996/06/22 22:57:35 pk Exp $ +.\" +.\" Copyright (c) 1996 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Paul Kranenburg. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the NetBSD +.\" Foundation, Inc. and its contributors. +.\" 4. Neither the name of The NetBSD Foundation nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd June 22, 1996 +.Dt PSIGNAL 9 +.Os +.Sh NAME +.Nm psignal , +.Nm pgsignal , +.Nm gsignal +.Nd post signal to a process or process group +.Sh SYNOPSIS +.Ft void +.Fn "psignal" "struct proc *p" "int signum" +.Ft void +.Fn "pgsignal" "struct pgrp *pgrp" "int signum" "int checkctty" +.Ft void +.Fn "gsignal" "int pgid" "int signum" +.Sh DESCRIPTION +These functions post a signal to one or more processes. The argument +.Fa signum +common to all three functions should be in the range +.Bq 1- Ns Dv NSIG . +.Pp +The +.Fn psignal +function posts signal number +.Fa signum +to the process represented by the process structure +.Fa p . +With a few exceptions noted below, the target process signal disposition is +updated and is marked as runnable, so further handling of the signal is done +in the context of the target process after a context switch. Note that +.Fn psignal +does not by itself cause a context switch to happen. +.Pp +The target process is not marked as runnable in the following cases: +.Bl -bullet -offset indent +.It +The target process is sleeping uninterruptibly. The signal will be +noticed when the process returns from the system call or trap. +.It +The target process is currently ignoring the signal. +.It +If a stop signal is sent to a sleeping process that takes the +default action +.Pq see Xr sigaction 2 , +the process is stopped without awakening it. +.It +.Dv SIGCONT +restarts a stopped process +.Pq or puts them back to sleep +regardless of the signal action +.Pq e.g., blocked or ignored . +.El +.Pp +If the target process is being traced +.Fn psignal +behaves as if the target process were taking the default action for +.Fa signum . +This allows the tracing process to be notified of the signal. +.Pp +The +.Fn pgsignal +function posts signal number +.Fa signum +to each member of the process group described by +.Fa pgrp . +If +.Fa checkctty +is non-zero, the signal will be posted only to processes that have +a controlling terminal. +.Fn pgsignal +is implemented by walking along the process list headed by the field +.Li pg_members +of the process group structure +pointed at by +.Fa pgrp +and calling +.Fn psignal +as appropriate. If +.Fa pgrp +is +.Dv NULL +no action is taken. +.Pp +The +.Fn gsignal +function posts signal number +.Fa signum +to each member of the process group identified by the group id +.Fa pgid . +.Fn gsignal +first finds the group structure associated with +.Fa pgid , +then invokes +.Fn pgsignal +with the argument +.Fa checkctty +set to zero. If +.Fa pgid +is zero no action is taken. +.Sh SEE ALSO +.Xr sigaction 2 , +.Xr tsleep 9