#include #include #include #include #include int keep_running = 1; void stop_running(int sig) { if (sig == SIGTERM) keep_running = 0; } int main(int argc, char *argv[]) { glfs_t *fs = NULL; int ret = 0; glfs_fd_t *fd = NULL; char *filename = NULL; char *logfile = NULL; char *host = NULL; if (argc != 5) { return -1; } host = argv[2]; logfile = argv[3]; filename = argv[4]; /* setup signal handler for exiting */ signal(SIGTERM, stop_running); fs = glfs_new(argv[1]); if (!fs) { return -1; } ret = glfs_set_volfile_server(fs, "tcp", host, 24007); if (ret < 0) { return -1; } ret = glfs_set_logging(fs, logfile, 7); if (ret < 0) { return -1; } ret = glfs_init(fs); if (ret < 0) { return -1; } fd = glfs_creat(fs, filename, O_RDWR, 0644); if (!fd) { return -1; } /* sleep until SIGTERM has been received */ while (keep_running) { sleep(1); } ret = glfs_close(fd); if (ret < 0) { return -1; } ret = glfs_fini(fs); if (ret < 0) { return -1; } return 0; }