alarm: try /bin for command
This commit is contained in:
parent
27c02488a5
commit
9f6eb984ec
1 changed files with 14 additions and 17 deletions
|
@ -33,27 +33,23 @@ usage(void)
|
||||||
exits("usage");
|
exits("usage");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
notefun(void *, char *msg)
|
catch(void *, char *msg)
|
||||||
{
|
{
|
||||||
postnote(PNGROUP, cpid, msg);
|
postnote(PNGROUP, cpid, msg);
|
||||||
return 1;
|
noted(NDFLT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *path, *p, *q;
|
char buf[1024], *p, *q;
|
||||||
Waitmsg *w;
|
Waitmsg *w;
|
||||||
long n, t;
|
long n, t;
|
||||||
|
|
||||||
ARGBEGIN{
|
if(argc < 3)
|
||||||
default: usage();
|
|
||||||
}ARGEND
|
|
||||||
|
|
||||||
if(argc < 2)
|
|
||||||
usage();
|
usage();
|
||||||
n = strtol(*argv++, &p, 10);
|
n = strtol(argv[1], &p, 10);
|
||||||
if(n < 0)
|
if(n < 0)
|
||||||
usage();
|
usage();
|
||||||
t = n * 1000;
|
t = n * 1000;
|
||||||
|
@ -74,18 +70,19 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
t += n;
|
t += n;
|
||||||
}
|
}
|
||||||
path = *argv;
|
|
||||||
if(p = strrchr(path, '/'))
|
|
||||||
if(p[1])
|
|
||||||
*argv = p+1;
|
|
||||||
atnotify(notefun,1);
|
|
||||||
switch((cpid = rfork(RFFDG|RFREND|RFPROC|RFMEM|RFNOTEG))){
|
switch((cpid = rfork(RFFDG|RFREND|RFPROC|RFMEM|RFNOTEG))){
|
||||||
case -1:
|
case -1:
|
||||||
sysfatal("%r");
|
sysfatal("%r");
|
||||||
case 0: /* child */
|
case 0: /* child */
|
||||||
exec(path, argv);
|
exec(argv[2], &argv[2]);
|
||||||
sysfatal("%s: %r", *argv);
|
if(argv[2][0] != '/' && strncmp(argv[2], "./", 2) &&
|
||||||
|
strncmp(argv[2], "../", 3)){
|
||||||
|
snprint(buf, sizeof(buf), "/bin/%s", argv[2]);
|
||||||
|
exec(argv[2] = buf, &argv[2]);
|
||||||
|
}
|
||||||
|
sysfatal("%s: %r", argv[2]);
|
||||||
}
|
}
|
||||||
|
notify(catch);
|
||||||
alarm(t);
|
alarm(t);
|
||||||
if(w = wait())
|
if(w = wait())
|
||||||
exits(w->msg);
|
exits(w->msg);
|
||||||
|
|
Loading…
Reference in a new issue