in->command = cur;
in->trigger = tb[INSTANCE_ATTR_TRIGGER];
- if (in->trigger) {
+ if (in->trigger)
trigger_add(in->trigger, in);
- }
+
if ((cur = tb[INSTANCE_ATTR_NICE])) {
in->nice = (int8_t) blobmsg_get_u32(cur);
if (in->nice < -20 || in->nice > 20)
void instance_dump(struct blob_buf *b, struct service_instance *in, int verbose)
{
void *i;
+ struct pid_info pi;
i = blobmsg_open_table(b, in->name);
blobmsg_add_u8(b, "running", in->proc.pending);
blobmsg_add_blob(b, in->command);
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);
+ }
blobmsg_close_table(b, i);
}