4 * you may think some rc script can be same effect
5 * I did but I realized rc script does not work cleanly.
6 * The bellowing has a problem. so I wrote in C
11 * echo usage: alarm time command arg ...
17 * if(test -e /proc/$pid)
18 * echo alarm >/proc/$pid/note
30 fprint(2,"usage: %s time command [ arg ... ]\n", argv0);
35 catch(void *, char *msg)
37 postnote(PNGROUP, getpid(), msg);
42 main(int argc, char *argv[])
44 char buf[1024], *p, *q;
51 n = strtol(argv[1], &p, 10);
55 if(*p++ == '.' && (n = strtol(p, &q, 10)) > 0){
73 switch(rfork(RFFDG|RFREND|RFPROC|RFMEM)){
77 exec(argv[2], &argv[2]);
78 if(argv[2][0] != '/' && strncmp(argv[2], "./", 2) &&
79 strncmp(argv[2], "../", 3)){
80 snprint(buf, sizeof(buf), "/bin/%s", argv[2]);
81 exec(argv[2] = buf, &argv[2]);
83 sysfatal("%s: %r", argv[2]);