2020-05-01 13:17:45 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
better error checking
diff --git a/isv.c b/isv.c index c9d65cb..7a399c3 100644 --- a/isv.c +++ b/isv.c @@ -92,10 +92,13 @@ load_services(const char *base_dir, int nservices) services[i].pid = read_lei32(&stt[12]); when = read_beu64(&stt[0]); services[i].uptime = time(NULL) + 4611686018427387914ULL - when; - fd = open("log/supervise/status", O_RDONLY); - read(fd, stt, sizeof stt); - close(fd); - services[i].log_pid = read_lei32(&stt[12]); + if ((fd = open("log/supervise/status", O_RDONLY)) < 0) { + services[i].log_pid = 0; + } else { + read(fd, stt, sizeof stt); + close(fd); + services[i].log_pid = read_lei32(&stt[12]); + } services[i].active = !!stat("down", &st); } }