Whack procctl(8)

It was supposed to provide a recovery mechanism against bugs in procfs's
long deprecated tracing capabilities.

Remove the tool as a prerequisite to axing the kernel side.

The tracing facility to use is ptrace(2).

MFC after:	2 weeks
This commit is contained in:
Mateusz Guzik 2017-09-27 01:03:00 +00:00
parent 2f1ddb89fc
commit cfcabed65f
8 changed files with 3 additions and 140 deletions

View File

@ -38,6 +38,9 @@
# xargs -n1 | sort | uniq -d;
# done
# 20170927: procctl
OLD_FILES+=usr/share/man/man8/procctl.8.gz
OLD_FILES+=usr/sbin/procctl
# 20170926: remove unneeded man aliases and locales directory
OLD_FILES+=usr/share/man/en.ISO8859-1/man1
OLD_FILES+=usr/share/man/en.ISO8859-1/man2

View File

@ -196,7 +196,6 @@ file system on
.Xr mount 2 ,
.Xr sigaction 2 ,
.Xr unmount 2 ,
.Xr procctl 8 ,
.Xr pseudofs 9
.Sh AUTHORS
.An -nosplit

View File

@ -708,7 +708,6 @@ DIRDEPS+= \
usr.sbin/pppctl \
usr.sbin/praliases \
usr.sbin/praudit \
usr.sbin/procctl \
usr.sbin/prometheus_sysctl_exporter \
usr.sbin/pstat \
usr.sbin/pw \

View File

@ -61,7 +61,6 @@ SUBDIR= adduser \
pciconf \
periodic \
powerd \
procctl \
prometheus_sysctl_exporter \
pstat \
pw \

View File

@ -1,6 +0,0 @@
# $FreeBSD$
PROG= procctl
MAN= procctl.8
.include <bsd.prog.mk>

View File

@ -1,18 +0,0 @@
# $FreeBSD$
# Autogenerated - do NOT edit!
DIRDEPS = \
gnu/lib/csu \
gnu/lib/libgcc \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -1,34 +0,0 @@
.\" $FreeBSD$
.Dd November 23, 1997
.Dt PROCCTL 8
.Os
.Sh NAME
.Nm procctl
.Nd clear procfs event flags
.Sh SYNOPSIS
.Nm
.Ar pid ...
.Sh DESCRIPTION
The
.Nm
utility clears the
.Xr procfs 5
event mask used by
.Xr truss 1 .
This can be used in the event that a process is left stranded, since
the
.Xr procfs 5
events result in a non-killable process.
The arguments are a list of process IDs;
.Nm
goes through the list and clears the event masks for each specified process.
.Sh SEE ALSO
.Xr truss 1 ,
.Xr procfs 5
.Sh HISTORY
The
.Nm
utility was written by
.An Sean Eric Fagan
for
.Fx .

View File

@ -1,79 +0,0 @@
/*
* Copyright 1997 Sean Eric Fagan
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Sean Eric Fagan
* 4. Neither the name of the author may be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
/*
* procctl -- clear the event mask, and continue, any specified processes.
* This is largely an example of how to use the procfs interface; however,
* for now, it is also sometimes necessary, as a stopped process will not
* otherwise continue. (This will be fixed in a later version of the
* procfs code, almost certainly; however, this program will still be useful
* for some annoying circumstances.)
*/
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/pioctl.h>
int
main(int ac, char **av) {
int fd;
int i;
for (i = 1; i < ac; i++) {
char buf[32];
snprintf(buf, sizeof(buf), "/proc/%s/mem", av[i]);
fd = open(buf, O_RDWR);
if (fd == -1) {
if (errno == ENOENT)
continue;
warn("cannot open pid %s", av[i]);
continue;
}
if (ioctl(fd, PIOCBIC, ~0) == -1)
warn("cannot clear process %s's event mask", av[i]);
if (ioctl(fd, PIOCCONT, 0) == -1 && errno != EINVAL)
warn("cannot continue process %s", av[i]);
close(fd);
}
return 0;
}