diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | svcok.c | 36 |
2 files changed, 39 insertions, 0 deletions
@@ -1,4 +1,7 @@ svcscan svcsupervise +svcok +svcstat +svctl *.o svc @@ -0,0 +1,36 @@ +#include <err.h> +#include <errno.h> +#include <sys/file.h> +#include <unistd.h> + +char *dir = "."; + +int +main(int argc, char **argv) +{ + int fd; + + if (argc > 1) + dir = argv[1]; + + if (chdir(dir) == -1) + err(1, "chdir()"); + + fd = open("supervise/lock", O_RDONLY); + if (fd == -1) { + if (errno == ENOENT) + exit(100); + else + err(1, "open()"); + } + + if (flock(fd, LOCK_EX | LOCK_NB) == -1) { + if (errno == EWOULDBLOCK) + exit(0); + else + err(1, "flock()"); + } else + exit(100); + + return 0; /* Not reached */ +} |