fiss

Friedel's Initialization and Service Supervision
Log | Files | Refs | LICENSE

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 }