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 */ +} | 
