write_status.c (595B)
1 #include "defs.h" 2 #include "open.h" 3 4 #include <string.h> 5 6 int write_status(void) { 7 struct serial serial; 8 char pid_buffer[16]; 9 int buffer_len; 10 11 encode(&serial); 12 if (openwrite("supervise/status", O_TRUNC, 0644, &serial, sizeof(serial)) == -1) 13 return -1; 14 15 buffer_len = snprintf(pid_buffer, sizeof pid_buffer, "%d", service.pid); 16 if (openwrite("supervise/pid", O_TRUNC, 0644, &pid_buffer, buffer_len) == -1) 17 return -1; 18 19 const char* stat = state_name(service.state); 20 if (openwrite("supervise/stat", O_TRUNC, 0644, stat, strlen(stat)) == -1) 21 return -1; 22 23 return 0; 24 }