1*daf4cb5aSSasha Levin #include <kvm/util.h> 2*daf4cb5aSSasha Levin #include <kvm/kvm-cmd.h> 3*daf4cb5aSSasha Levin #include <kvm/builtin-stop.h> 4*daf4cb5aSSasha Levin #include <kvm/kvm.h> 5*daf4cb5aSSasha Levin 6*daf4cb5aSSasha Levin #include <stdio.h> 7*daf4cb5aSSasha Levin #include <string.h> 8*daf4cb5aSSasha Levin #include <signal.h> 9*daf4cb5aSSasha Levin 10*daf4cb5aSSasha Levin static void do_stop(const char *name, int pid) 11*daf4cb5aSSasha Levin { 12*daf4cb5aSSasha Levin kill(pid, SIGKVMSTOP); 13*daf4cb5aSSasha Levin } 14*daf4cb5aSSasha Levin 15*daf4cb5aSSasha Levin int kvm_cmd_stop(int argc, const char **argv, const char *prefix) 16*daf4cb5aSSasha Levin { 17*daf4cb5aSSasha Levin int pid; 18*daf4cb5aSSasha Levin 19*daf4cb5aSSasha Levin if (argc != 1) 20*daf4cb5aSSasha Levin die("Usage: kvm stop [instance name]\n"); 21*daf4cb5aSSasha Levin 22*daf4cb5aSSasha Levin if (strcmp(argv[0], "all") == 0) { 23*daf4cb5aSSasha Levin kvm__enumerate_instances(do_stop); 24*daf4cb5aSSasha Levin return 0; 25*daf4cb5aSSasha Levin } 26*daf4cb5aSSasha Levin 27*daf4cb5aSSasha Levin pid = kvm__get_pid_by_instance(argv[0]); 28*daf4cb5aSSasha Levin if (pid < 0) 29*daf4cb5aSSasha Levin die("Failed locating instance name"); 30*daf4cb5aSSasha Levin 31*daf4cb5aSSasha Levin return kill(pid, SIGKVMSTOP); 32*daf4cb5aSSasha Levin } 33