Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

prctl(1) [suse man page]

PRCTL(1)						      General Commands Manual							  PRCTL(1)

NAME
prctl - Process operations SYNOPSIS
prctl [-v] [-h|--help] [--version] <-q|<options....>> [command] where <options> are: --unaligned=[silent|signal|default] --fpemu=[silent|signal|default] DESCRIPTION
prctl allows you to query or control certain process behavior. Supported options are handling of unaligned memory accesses and floating point assistance faults by a process. When a process performs an unaligned memory access, by default the kernel would emulate the unaligned access correctly and log the unaligned access in syslog. This behavior can be changed so the kernel could either emulate the unaligned access correctly without logging an error or send SIGBUS to the process. Similarly when a process encounters a floating point assist fault, kernel would invoke floating point emulator and log the floating point assist fault. This behavior can be changed so the ker- nel could either emulate floating point operation without logging an error or send SIGFPE to the offending process. prctl can optionally be followed by a command. If a command is specified, prctl will exec the command with the processor behavior set to as specified by the options. If a command is not specified, prctl will fork a new shell unless the command only queried the current settings. The shell started by prctl will be as defined by the environment variable SHELL. If environment variable SHELL is not defined, shell in the password entry for the user will be started. If a shell is not found in the password entry, bash will be started. OPTIONS -v Verbose mode. In verbose mode, any new settings are confirmed with a message on stdout. --help Print usage information and exit. --version Print software version and exit. -q Query the current settings for the process options controllable by prctl. --unaligned=[silent|signal|default]] Set unaligned memory access behavior to not log the access (silent), send SIGBUS to the process (signal), or do the default (default). If a value is not specified after "=", current setting is returned. --fpemu=[silent|signal|default]] Set floating point assist fault behavior to not log the faulti (silent), send SIGFPE to the process (signal), or do the default (default). If a value is not specified after "=", current setting is returned. If an option is specified multiple times, the last one takes effect. EXAMPLES
prctl --unaligned=signal starts up a shell (as defined by the environment variable SHELL) and sets up any process running under this shell to be sent SIGBUS upon an unaligned memory access. prctl --unaligned=signal gdb tst starts up a gdb session for the program "tst" with the process set to receive SIGBUS upon unligned memory access. prctl --unaligned= displays the current setting for unaligned memory access handling. prctl --unaligned= gdb tst displays the current setting for unaligned memory access handling and starts up a gdb session for the program "tst". NOTES
prctl works on 2.4.0 and above kernels only. --fpemu= option is specific to IPF (Itanium Processor Family, previously known as IA-64) and is supported on kernels 2.4.11 and above. Other architectures and kernels may return "Invalid argument" error. prctl(2) AUTHOR
Khalid Aziz <khalid_aziz@hp.com> LICENSE
This software is made available under the GNU General Public License (GPL) Version 2. This software comes with NO WARRANTY. Process operations PRCTL(1)

Check Out this Related Man Page

PRCTL(2)						     Linux Programmer's Manual							  PRCTL(2)

NAME
prctl - operations on a process SYNOPSIS
#include <sys/prctl.h> int prctl(int option, unsigned long arg2, unsigned long arg3 , unsigned long arg4, unsigned long arg5); DESCRIPTION
prctl is called with a first argument describing what to do (with values defined in <linux/prctl.h>), and further parameters with a signif- icance depending on the first one. The first argument can be: PR_SET_PDEATHSIG (since Linux 2.1.57) Set the parent process death signal of the current process to arg2 (either a signal value in the range 1..maxsig, or 0 to clear). This is the signal that the current process will get when its parent dies. This value is cleared upon a fork(). PR_GET_PDEATHSIG (since Linux 2.3.15) Read the current value of the parent process death signal into the (int *) arg2. PR_SET_DUMPABLE (Since Linux 2.4) Set the state of the flag determining whether core dumps are produced for this process upon delivery of a signal whose default behaviour is to produce a core dump. (Normally this flag is set for a process by default, but it is cleared when a set-UID or set-GID program is executed and also by various system calls that manipulate process UIDs and GIDs). arg2 must be either 0 (process is not dumapable) or 1 (process is dumpable). PR_GET_DUMPABLE (Since Linux 2.4) Return (as the function result) the current state of the calling process's dumpable flag. PR_SET_KEEPCAPS Set the state of the process's "keep capabilities" flag, which determines whether the process's effective and permitted capability sets are cleared when a change is made to the process's user IDs such that all of the process's real, effective, and saved set user IDs become non-zero when at least one of them previously had the value 0. (By default, these credential sets are cleared). arg2 must be either 0 (capabilities are cleared) or 1 (capabilities are kept). PR_GET_KEEPCAPS Return (as the function result) the current state of the calling process's "keep capabilities" flag. RETURN VALUE
PR_GET_DUMPABLE and PR_GET_KEEPCAPS return 0 or 1 on success. All other option values return 0 on success. On error, -1 is returned, and errno is set appropriately. ERRORS
EINVAL The value of option is not recognized, or it is PR_SET_PDEATHSIG and arg2 is not zero or a signal number. CONFORMING TO
This call is Linux-specific. IRIX has a prctl system call (also introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with prototype ptrdiff_t prctl(int option, int arg2, int arg3); and options to get the maximum number of processes per user, get the maximum number of processors the calling process can use, find out whether a specified process is currently blocked, get or set the maximum stack size, etc., etc. AVAILABILITY
The prctl() systemcall was introduced in Linux 2.1.57. There is no prctl() library call as yet. SEE ALSO
signal(2) Linux 2.4.18 2002-06-27 PRCTL(2)
Man Page