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:
parent
2f1ddb89fc
commit
cfcabed65f
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 \
|
||||
|
@ -61,7 +61,6 @@ SUBDIR= adduser \
|
||||
pciconf \
|
||||
periodic \
|
||||
powerd \
|
||||
procctl \
|
||||
prometheus_sysctl_exporter \
|
||||
pstat \
|
||||
pw \
|
||||
|
@ -1,6 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= procctl
|
||||
MAN= procctl.8
|
||||
|
||||
.include <bsd.prog.mk>
|
@ -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
|
@ -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 .
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user