#include #include #include #include #include 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 */ }