/* Copyright (C) 2008 Andreas Baumann This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef __PIDFILE_H #define __PIDFILE_H #include "port/limits.h" /* for PATH_MAX */ #include "port/stdbool.h" /* for bool */ #include "errors.h" #include /* for pid_t */ struct pidfile_t { char filename[PATH_MAX]; /**< the filename */ int fd; /**< file descriptor */ bool locked; /**< is the pidfile locked? */ bool running; /**< is another process locking too? */ }; void pidfile_init( struct pidfile_t *pidfile ); void pidfile_set_from_daemon_name( struct pidfile_t *pidfile, const char *name ); void pidfile_set_from_filename( struct pidfile_t *pidfile, const char *filename ); bool is_daemon_running( struct pidfile_t *pidfile, pid_t *pid, wolf_error_t *error ); wolf_error_t pidfile_create( struct pidfile_t *pidfile ); wolf_error_t pidfile_release( struct pidfile_t *pidfile ); wolf_error_t pidfile_remove( struct pidfile_t *pidfile ); #endif /* ifndef __PIDFILE_H */