version 1.19, 2021/09/04 11:49:11 |
version 1.20, 2022/01/12 22:51:44 |
|
|
static double |
static double |
parse_duration(const char *duration) |
parse_duration(const char *duration) |
{ |
{ |
double ret; |
double ret; |
char *suffix; |
char *suffix; |
|
|
ret = strtod(duration, &suffix); |
ret = strtod(duration, &suffix); |
if (ret == 0 && suffix == duration) |
if (ret == 0 && suffix == duration) |
|
|
main(int argc, char **argv) |
main(int argc, char **argv) |
{ |
{ |
int ch; |
int ch; |
unsigned long i; |
unsigned long i; |
int foreground = 0, preserve = 0; |
int foreground = 0, preserve = 0; |
int pstat, status; |
int pstat, status; |
int killsig = SIGTERM; |
int killsig = SIGTERM; |
pid_t pgid = 0, pid, cpid = 0; |
pid_t pgid = 0, pid, cpid = 0; |
double first_kill; |
double first_kill; |
double second_kill = 0; |
double second_kill = 0; |
bool timedout = false; |
bool timedout = false; |
bool do_second_kill = false; |
bool do_second_kill = false; |
struct sigaction signals; |
struct sigaction signals; |
int signums[] = {-1, SIGTERM, SIGINT, SIGHUP, SIGCHLD, |
int signums[] = {-1, SIGTERM, SIGINT, SIGHUP, SIGCHLD, |
SIGALRM, SIGQUIT}; |
SIGALRM, SIGQUIT}; |
|
|
const struct option longopts[] = { |
const struct option longopts[] = { |