unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



kill(2)								      kill(2)



NAME
  kill - Sends a signal	to a process or	to a group of processes

SYNOPSIS

  #include <&lt;signal.h>&gt;

  int kill(
	  pid_t	process,
	  int signal );

  Application developers may want to specify an	#include statement for
  <&lt;sys/types.h>&gt;	before the one for <&lt;signal.h>&gt; if programs are being developed
  for multiple platforms. The additional #include statement is not required
  on Tru64 UNIX	systems	or by ISO or X/Open standards, but may be required on
  other	vendors' systems that conform to these standards.

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  kill():  XSH5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  process   Specifies the process or group of processes.

  signal    Specifies the signal. If the signal	parameter is a value of	0
	    (the null signal), error checking is performed but no signal is
	    sent. This can be used to check the	validity of the	process
	    parameter.

DESCRIPTION

  The kill() function sends the	signal specified by the	signal parameter to
  the process or group of processes specified by the process parameter.

  To send a signal to another process, at least	one of the following must be
  true:

    +  The real	or the saved set-user-ID of the	sending	process	matches	the
       real or effective user ID of the	receiving process.

    +  The process is trying to	send the SIGCONT signal	to one of its
       session's processes.

    +  The calling process has root privileges.


  Processes can	send signals to	themselves.

  Sending a signal does	not imply that the operation is	successful. All	sig-
  nal operations must pass the access checks prescribed	by each	enforced
  access control policy	on the system.

  If the process parameter is greater than 0 (zero), the signal	specified by
  the signal parameter is sent to the process that has a process ID equal to
  the value of the process parameter.

  If the process parameter is equal to 0 (zero), the signal specified by the
  signal parameter is sent to all of the processes (other than system
  processes) whose process group ID is equal to	the process group ID of	the
  sender.

  If the process parameter is equal to -1, the signal specified	by the signal
  parameter is sent to all of the processes other than system processes	for
  which	the process has	permission to send that	signal.	 For example, if the
  effective user ID of the sender has root privileges, the signal specified
  by the signal	parameter is sent to all of the	processes other	than system
  processes.

  If the process parameter is negative but not -1, the signal specified	by
  the signal parameter is sent to all of the processes that have a process
  group	ID equal to the	absolute value of the process parameter.

  [Tru64 UNIX]	In a TruCluster	Server cluster,	if the process parameter is
  greater than 0 (zero), the signal specified by the signal parameter is sent
  to the process that has a process ID equal to	the value of the process
  parameter, even if that process is on	another	cluster	member.	 The process
  ID is	guaranteed to be unique	across the cluster.

  [Tru64 UNIX]	In a TruCluster	Server cluster,	if the process parameter is
  equal	to -1, the signal specified by the signal parameter is sent to all
  non-system processes (on the current cluster member) for which the process
  has permission to send that signal.

  [Tru64 UNIX]	In a TruCluster	Server cluster,	if the process parameter is
  negative but not -1, the signal specified by the signal parameter is sent
  to all of the	processes that have a process group ID equal to	the absolute
  value	of the process parameter, even if those	processes are on another
  cluster member.

RETURN VALUES

  Upon successful completion, the kill() function returns a value of 0
  (zero). Otherwise, a value of	-1 is returned and errno is set	to indicate
  the error.

NOTES

  Some applications and	scripts	depend on the process ID of the	init program
  being	1 (one):  do not depend	on it.	Instead, use standard methods, such
  as the ps and	grep commands, to obtain all process IDs.

ERRORS

  The kill() function sets errno to the	specified values for the following
  conditions:

  [EINVAL]  The	signal parameter is not	a valid	signal number.

	    [Tru64 UNIX]  The signal parameter is SIGKILL, SIGSTOP, SIGTSTP
	    or SIGCONT and the process parameter is the	process	ID of the
	    init program.

  [ESRCH]   No process or process group	can be found corresponding to that
	    specified by the process parameter.

  [EPERM]   The	real or	saved user ID does not match the real or effective
	    user ID of the receiving process, the calling process does not
	    have appropriate privilege,	and the	process	is not sending a
	    SIGCONT signal to one of its session's processes.

  [EACCES]  [Tru64 UNIX]  The calling process does not have appropriate
	    privileges.

RELATED	INFORMATION

  Functions: getpid(2),	killpg(2), raise(3), setpgid(2), sigaction(2),
  sigvec(2)

  Standards: standards(5)