1.\" $NetBSD: setpgid.2,v 1.8 1995/02/27 12:36:55 cgd Exp $ 2.\" 3.\" Copyright (c) 1980, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by the University of 17.\" California, Berkeley and its contributors. 18.\" 4. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" @(#)setpgid.2 8.1 (Berkeley) 6/4/93 35.\" 36.Dd June 4, 1993 37.Dt SETPGID 2 38.Os BSD 4 39.Sh NAME 40.Nm setpgid , 41.Nm setpgrp 42.Nd set process group 43.Sh SYNOPSIS 44.Fd #include <unistd.h> 45.Ft int 46.Fo setpgid 47.Fa "pid_t pid" 48.Fa "pid_t pgid" 49.Fc 50.Ft pid_t 51.Fo setpgrp 52.Fa void 53.Fc 54.Sh DESCRIPTION 55.Fn setpgid 56sets the process group of the specified process 57.Ar pid 58to the specified 59.Ar pgid . 60If 61.Ar pid 62is zero, then the call applies to the current process. 63.Pp 64If the invoker is not the super-user, then the affected process 65must have the same effective user-id as the invoker or be a descendant 66of the invoking process. 67.Pp 68.Sh RETURN VALUES 69.Fn setpgid 70returns 0 when the operation was successful. 71If the request failed, -1 is returned and the global variable 72.Va errno 73indicates the reason. 74.Sh ERRORS 75.Fn setpgid 76will fail and the process group will not be altered if: 77.Bl -tag -width Er 78.\" =========== 79.It Bq Er EACCES 80The value of the 81.Fa pid 82argument matches the process ID of a child process of the calling process, 83and the child process has successfully executed one of the exec functions. 84.\" =========== 85.It Bq Er EINVAL 86The value of the 87.Fa pgid 88argument is less than 0 89or is not a value supported by the implementation. 90.\" =========== 91.It Bq Er EPERM 92The process indicated by the 93.Fa pid 94argument is a session leader. 95.\" =========== 96.It Bq Er EPERM 97The effective user ID of the requested process is different 98from that of the caller and the process is not a descendant 99of the calling process. 100.\" =========== 101.It Bq Er EPERM 102The value of the 103.Fa pgid argument 104is valid, but does not match the process ID 105of the process indicated by the 106.Fa pid 107argument and there is no process with a process group ID 108that matches the value of the 109.Fa pgid 110argument in the same session as the calling process. 111.\" =========== 112.It Bq Er ESRCH 113The value of the 114.Fa pid 115argument does not match the process ID of the calling process or of a 116child process of the calling process. 117.El 118.Sh LEGACY SYNOPSIS 119.Fd #include <unistd.h> 120.Pp 121.Ft int 122.br 123.Fo setpgrp 124.Fa "pid_t pid" 125.Fa "pid_t pgid" 126.Fc ; 127.Pp 128The legacy 129.Fn setpgrp 130function is a clone of the 131.Fn setpgid 132function, retained for calling convention compatibility 133with historical versions of 134.Bx . 135.Sh COMPATIBILITY 136Use of the legacy version of the 137.Fn setpgrp 138call will cause compiler diagnostics. 139Use 140.Fn setpgid 141instead. 142.Pp 143Use of private (and conflicting) prototypes for 144.Fn setpgrp 145will cause compiler diagnostics. 146Delete the private prototypes and include 147.In unistd.h . 148.Sh SEE ALSO 149.Xr getpgrp 2 , 150.Xr compat 5 151.Sh STANDARDS 152The 153.Fn setpgid 154function conforms to 155.St -p1003.1-88 . 156