@@ -6,10 +6,31 @@
#include <stdio.h>
#include <string.h>
#include <signal.h>
+#include <fcntl.h>
+
+#define PROCESS_NAME "kvm"
static void print_guest(const char *name, int pid)
{
+ char proc_name[PATH_MAX];
+ char comm[sizeof(PROCESS_NAME)];
+ int fd;
+
+ sprintf(proc_name, "/proc/%d/comm", pid);
+ fd = open(proc_name, O_RDONLY);
+ if (fd <= 0)
+ goto cleanup;
+ if (read(fd, comm, sizeof(PROCESS_NAME)) == 0)
+ goto cleanup;
+ if (strncmp(comm, PROCESS_NAME, strlen(PROCESS_NAME)))
+ goto cleanup;
+
printf("%s (PID: %d)\n", name, pid);
+
+ return;
+
+cleanup:
+ kvm__remove_pidfile(name);
}
int kvm_cmd_list(int argc, const char **argv, const char *prefix)
When running 'kvm list', first make sure that the guest process is up and running before printing the entry. Signed-off-by: Sasha Levin <levinsasha928@gmail.com> --- tools/kvm/kvm-list.c | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-)