+
+ if (!avl_is_empty(&in->env.avl)) {
+ struct blobmsg_list_node *var;
+ void *e = blobmsg_open_table(b, "env");
+ blobmsg_list_for_each(&in->env, var)
+ blobmsg_add_string(b, blobmsg_name(var->data), blobmsg_data(var->data));
+ blobmsg_close_table(b, e);
+ }
+
+ if (in->respawn) {
+ void *r = blobmsg_open_table(b, "respawn");
+ blobmsg_add_u32(b, "timeout", in->respawn_timeout);
+ blobmsg_add_u32(b, "threshold", in->respawn_threshold);
+ blobmsg_add_u32(b, "retry", in->respawn_retry);
+ blobmsg_close_table(b, r);
+ }
+
+ if (verbose && in->trigger)
+ blobmsg_add_blob(b, in->trigger);
+ if (!measure_process(in->proc.pid, &pi)) {
+ struct timespec tp;
+ long uptime;
+
+ clock_gettime(CLOCK_MONOTONIC, &tp);
+ uptime = tp.tv_sec - in->start.tv_sec;
+
+ blobmsg_add_u8(b, "ppid", pi.ppid);
+ blobmsg_add_u16(b, "uid", pi.uid);
+ blobmsg_add_u32(b, "fdcount", pi.fdcount);
+ blobmsg_add_u32(b, "vmsize", pi.vmsize);
+ blobmsg_add_u32(b, "uptime", uptime);
+ }