diff options
author | Marius Halden <marius.h@lden.org> | 2015-12-02 23:26:13 +0100 |
---|---|---|
committer | Marius Halden <marius.h@lden.org> | 2015-12-02 23:26:13 +0100 |
commit | e560b1d1dcf6cbcd75e6bebad55d818e2ea00dbe (patch) | |
tree | bf1b5e5d9f9bd8a843f17828f16cd14cc29c0318 | |
parent | f4814a6fa4a9329734113ecadc1415de31bed7dd (diff) | |
download | svcmon-e560b1d1dcf6cbcd75e6bebad55d818e2ea00dbe.tar.gz svcmon-e560b1d1dcf6cbcd75e6bebad55d818e2ea00dbe.tar.bz2 svcmon-e560b1d1dcf6cbcd75e6bebad55d818e2ea00dbe.tar.xz |
Initial svcok
-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 */ +} |