#include <libubox/uloop.h>
#include "utils.h"
+#define RESPAWN_ERROR (5 * 60)
+
struct service_instance {
struct vlist_node node;
struct service *srv;
int8_t nice;
bool valid;
+
+ bool halt;
bool restart;
+ bool respawn;
+ int respawn_count;
+ struct timespec start;
+
+ uint32_t respawn_timeout;
+ uint32_t respawn_threshold;
+ uint32_t respawn_retry;
struct blob_attr *config;
struct uloop_process proc;
struct uloop_timeout timeout;
struct blob_attr *command;
+ struct blob_attr *trigger;
struct blobmsg_list env;
struct blobmsg_list data;
struct blobmsg_list netdev;
};
void instance_start(struct service_instance *in);
-void instance_stop(struct service_instance *in, bool restart);
+void instance_stop(struct service_instance *in);
bool instance_update(struct service_instance *in, struct service_instance *in_new);
void instance_init(struct service_instance *in, struct service *s, struct blob_attr *config);
void instance_free(struct service_instance *in);
-void instance_dump(struct blob_buf *b, struct service_instance *in);
+void instance_dump(struct blob_buf *b, struct service_instance *in, int debug);
#endif