askillash_array(3x)askillash_array(3x)NAME
askillash_array, askillash_local, askillash_server - send a signal to an
array session
SYNOPSIS
#include <sys/types.h>
#include <arraysvcs.h>
int askillash_array(asserver_t Server, const char *ArrayName,
ash_t ASH, int Sig);
int askillash_local(ash_t ASH, int Sig);
int askillash_server(asserver_t Server, ash_t ASH, int Sig);
DESCRIPTION
The askillash_array, askillash_local, and askillash_server functions all
send a signal to each of the processes that belong to the array session
specified by the array session handle ASH at the moment the function is
executed. The signal that is to be sent is specified by Sig and is
either one from the list given in signal(2), or 0. If Sig is 0 (the null
signal), error checking is performed but no signals are actually sent.
This can be used to check the validity of ASH.
The real or effective user ID of the sending process must match the real,
saved, or effective user ID of the receiving processes, unless the
effective user ID of the sending process is superuser.
For askillash_array and askillash_server, the Server argument specifies
an optional array server token, which can be used to direct the request
to a specific array services daemon. If NULL is specified instead, the
request will be processed by the default array services daemon (see
array(1) for more information on how the default array services daemon is
selected). For more details on creating an array server token, see
asopenserver(3X).
askillash_array will send a signal to the members of the specified array
session on each of the machines in the array specified by ArrayName, or
the default array if ArrayName is NULL. The operation will be
coordinated by the array services daemon specified by the server token
Server.
askillash_local will only send a signal to the members of the specified
array session that are running on the same machine as the one that
executes askillash_local. Unlike askillash_array and askillash_server,
this function does not require the array services daemon (arrayd).
askillash_server will only send a signal to the members of the specified
array session that are running on the machine specified with the server
token Server.
All three functions will fail if one or more of the following are true:
Page 1
askillash_array(3x)askillash_array(3x)
* Sig is not a valid signal number
* Sig is SIGKILL and the specified array session contains process 1
* The user ID of the sending process is not superuser, and its real or
effective user ID does not match the real, saved, or effective user ID
of the receiving processes
* The array services daemon (arrayd) is not currently active (not
applicable for askillash_local)
If one or more of these conditions apply only to a subset of the
processes in an array session, it is undefined whether or not these
functions will complete for some or all of processes that are not
affected.
These functions are not atomic with respect to process creation. As a
result, it is possible that a new process could join the array session
after the signalling operation has started but before it has completed
and consequently never receive the signal itself.
NOTES
All of these functions are found in the library "libarray.so", and will
be loaded if the option "-larray" is used with cc(1) or ld(1).
SEE ALSOkill(2), aserrorcode(3X), askillpid_server(3X), asopenserver(3X),
array_sessions(5).
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and aserrorcode(3x) is set accordingly.
Page 2