1 1.1.1.5 christos /* $OpenBSD$ */ 2 1.1 jmmv 3 1.1 jmmv /* 4 1.1.1.6 christos * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott (at) gmail.com> 5 1.1 jmmv * 6 1.1 jmmv * Permission to use, copy, modify, and distribute this software for any 7 1.1 jmmv * purpose with or without fee is hereby granted, provided that the above 8 1.1 jmmv * copyright notice and this permission notice appear in all copies. 9 1.1 jmmv * 10 1.1 jmmv * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 1.1 jmmv * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 1.1 jmmv * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 1.1 jmmv * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 1.1 jmmv * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER 15 1.1 jmmv * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 16 1.1 jmmv * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 1.1 jmmv */ 18 1.1 jmmv 19 1.1 jmmv #include <sys/types.h> 20 1.1 jmmv 21 1.1 jmmv #include <signal.h> 22 1.1 jmmv #include <unistd.h> 23 1.1 jmmv 24 1.1 jmmv #include "tmux.h" 25 1.1 jmmv 26 1.1 jmmv /* 27 1.1 jmmv * Kill the server and do nothing else. 28 1.1 jmmv */ 29 1.1 jmmv 30 1.1.1.7 christos static enum cmd_retval cmd_kill_server_exec(struct cmd *, struct cmdq_item *); 31 1.1 jmmv 32 1.1 jmmv const struct cmd_entry cmd_kill_server_entry = { 33 1.1.1.6 christos .name = "kill-server", 34 1.1.1.6 christos .alias = NULL, 35 1.1.1.6 christos 36 1.1.1.9 wiz .args = { "", 0, 0, NULL }, 37 1.1.1.6 christos .usage = "", 38 1.1.1.6 christos 39 1.1.1.6 christos .flags = 0, 40 1.1.1.6 christos .exec = cmd_kill_server_exec 41 1.1.1.3 christos }; 42 1.1.1.3 christos 43 1.1.1.3 christos const struct cmd_entry cmd_start_server_entry = { 44 1.1.1.6 christos .name = "start-server", 45 1.1.1.6 christos .alias = "start", 46 1.1.1.6 christos 47 1.1.1.9 wiz .args = { "", 0, 0, NULL }, 48 1.1.1.6 christos .usage = "", 49 1.1.1.6 christos 50 1.1.1.6 christos .flags = CMD_STARTSERVER, 51 1.1.1.6 christos .exec = cmd_kill_server_exec 52 1.1 jmmv }; 53 1.1 jmmv 54 1.1.1.7 christos static enum cmd_retval 55 1.1.1.7 christos cmd_kill_server_exec(struct cmd *self, __unused struct cmdq_item *item) 56 1.1 jmmv { 57 1.1.1.8 christos if (cmd_get_entry(self) == &cmd_kill_server_entry) 58 1.1.1.3 christos kill(getpid(), SIGTERM); 59 1.1 jmmv 60 1.1.1.3 christos return (CMD_RETURN_NORMAL); 61 1.1 jmmv } 62