1 .\"
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source. A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .\" Copyright 2015 Joyent, Inc.
13 .\"
14 .Dd May 11, 2016
15 .Dt PREOPEN 3PROC
16 .Os
17 .Sh NAME
18 .Nm Preopen
19 .Nd reopen a process
20 .Sh LIBRARY
21 .Lb libproc
22 .Sh SYNOPSIS
23 .In libproc.h
24 .Ft int
25 .Fo Preopen
26 .Fa "struct ps_prochandle *P"
27 .Fc
28 .Sh DESCRIPTION
29 The
30 .Fn Preopen
31 function is used to regain control of the process represented by the
32 handle
33 .Fa P .
34 A loss of control is indicated by the
35 .Xr Pstatus 3PROC
36 function returning the value
37 .Dv PS_LOST .
38 This may occur when the controlled process performs an
39 .Xr exec 2
40 of a setuid or setgid binary or one where the controlling process cannot
41 read the object file.
42 For more information on this, see the
43 .Sy PROGRAMMING NOTES
44 section of
45 .Xr proc 4 .
46 .Pp
47 If successful, the controlling process will obtain control of the
48 process specified by
49 .Fa P .
50 If it fails, the controlling process should release the handle with
51 .Xr Prelease 3PROC .
52 Note there are occasions where due to permissions it may not be possible
53 to obtain control again.
54 .Sh RETURN VALUES
55 Upon successful completion, the
56 .Fn Preopen
57 function returns
58 .Sy 0.
59 Otherwise,
60 .Sy -1
61 is returned.
62 .Sh INTERFACE STABILITY
63 .Sy Uncommitted
64 .Sh MT-LEVEL
65 See
66 .Sy LOCKING
67 in
68 .Xr libproc 3LIB .
69 .Sh SEE ALSO
70 .Xr exec 2 ,
71 .Xr libproc 3LIB ,
72 .Xr Prelease 3PROC ,
73 .Xr Pstatus 3PROC ,
74 .Xr proc 4