#include #include #define ERRSTRING strerror (errno) #define COMMAND_SIZE (PIPE_BUF - 4) #define COMMAND_TEST 0 /* No wait, signal */ #define COMMAND_NEED 1 /* Wait, signal */ #define COMMAND_ROLLBACK 2 /* Wait, signal */ #define COMMAND_DUMP_LIST 3 /* No wait, no signal */ #define COMMAND_PROVIDE 4 /* Wait, signal */ #define SIG_PRESENT SIGUSR1 /* Service is available */ #define SIG_STOPPED SIGUSR1 /* Service was stopped OK */ #define SIG_NOT_PRESENT SIGUSR2 /* Not present, but that's OK */ #define SIG_FAILED SIGPOLL /* Startup failed */ #define SIG_NOT_STOPPED SIGPOLL /* Failed to stop */ #define SIG_NOT_CHILD SIGPOLL /* Not a child of init */ struct command_struct /* Must always be COMMAND_SIZE */ { signed int command; pid_t pid; pid_t ppid; char name[1]; };