version 1.18, 2009/10/27 23:59:41 |
version 1.19, 2011/04/10 03:20:59 |
|
|
|
|
SLIST_HEAD(listhead, list); |
SLIST_HEAD(listhead, list); |
|
|
struct kinfo_proc2 *plist; |
struct kinfo_proc *plist; |
char *selected; |
char *selected; |
char *delim = "\n"; |
char *delim = "\n"; |
int nproc; |
int nproc; |
|
|
|
|
int main(int, char **); |
int main(int, char **); |
void usage(void); |
void usage(void); |
int killact(struct kinfo_proc2 *, int); |
int killact(struct kinfo_proc *, int); |
int grepact(struct kinfo_proc2 *, int); |
int grepact(struct kinfo_proc *, int); |
void makelist(struct listhead *, enum listtype, char *); |
void makelist(struct listhead *, enum listtype, char *); |
|
|
extern char *__progname; |
extern char *__progname; |
|
|
extern int optind; |
extern int optind; |
char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q; |
char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q; |
int i, j, ch, bestidx, rv, criteria; |
int i, j, ch, bestidx, rv, criteria; |
int (*action)(struct kinfo_proc2 *, int); |
int (*action)(struct kinfo_proc *, int); |
struct kinfo_proc2 *kp; |
struct kinfo_proc *kp; |
struct list *li; |
struct list *li; |
u_int32_t bestsec, bestusec; |
u_int32_t bestsec, bestusec; |
regex_t reg; |
regex_t reg; |
|
|
if (kd == NULL) |
if (kd == NULL) |
errx(STATUS_ERROR, "kvm_openfiles(): %s", buf); |
errx(STATUS_ERROR, "kvm_openfiles(): %s", buf); |
|
|
plist = kvm_getproc2(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc); |
plist = kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc); |
if (plist == NULL) |
if (plist == NULL) |
errx(STATUS_ERROR, "kvm_getproc2() failed"); |
errx(STATUS_ERROR, "kvm_getprocs() failed"); |
|
|
/* |
/* |
* Allocate memory which will be used to keep track of the |
* Allocate memory which will be used to keep track of the |
|
|
continue; |
continue; |
|
|
if (matchargs) { |
if (matchargs) { |
if ((pargv = kvm_getargv2(kd, kp, 0)) == NULL) |
if ((pargv = kvm_getargv(kd, kp, 0)) == NULL) |
continue; |
continue; |
|
|
j = 0; |
j = 0; |
|
|
} |
} |
|
|
int |
int |
killact(struct kinfo_proc2 *kp, int dummy) |
killact(struct kinfo_proc *kp, int dummy) |
{ |
{ |
|
|
if (kill(kp->p_pid, signum) == -1 && errno != ESRCH) { |
if (kill(kp->p_pid, signum) == -1 && errno != ESRCH) { |
|
|
} |
} |
|
|
int |
int |
grepact(struct kinfo_proc2 *kp, int printdelim) |
grepact(struct kinfo_proc *kp, int printdelim) |
{ |
{ |
char **argv; |
char **argv; |
|
|
if (printdelim) |
if (printdelim) |
fputs(delim, stdout); |
fputs(delim, stdout); |
if (longfmt && matchargs) { |
if (longfmt && matchargs) { |
if ((argv = kvm_getargv2(kd, kp, 0)) == NULL) |
if ((argv = kvm_getargv(kd, kp, 0)) == NULL) |
return (-1); |
return (-1); |
|
|
printf("%d ", (int)kp->p_pid); |
printf("%d ", (int)kp->p_pid); |