From 5f46f6f2d649b2bb8664f9c749e15acd8f529b6c Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 24 Oct 2025 16:46:58 +0000 Subject: Separate s6 from s6-frontend, fix configure for no-nsss build --- src/s6/process_kill.c | 93 --------------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 src/s6/process_kill.c (limited to 'src/s6/process_kill.c') diff --git a/src/s6/process_kill.c b/src/s6/process_kill.c deleted file mode 100644 index 64f7ffb..0000000 --- a/src/s6/process_kill.c +++ /dev/null @@ -1,93 +0,0 @@ -/* ISC license. */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "s6-internal.h" - -#define USAGE "s6 process kill [ --signal=sig ] services..." -#define dieusage() strerr_dieusage(100, USAGE) - -static int process_kill_hack_kill (int sig, char const *const *argv) -{ - size_t scandirlen = strlen(g->dirs.scan) ; - if (g->verbosity) - { - char fmt[INT_FMT] ; - fmt[int_fmt(fmt, sig)] = 0 ; - strerr_warnw3x("signal ", fmt, " is not natively supported by s6-svc, results may be unreliable") ; - } - - for (; *argv ; argv++) - { - s6_svstatus_t status ; - size_t arglen = strlen(*argv) ; - char path[scandirlen + arglen + 2] ; - memcpy(path, g->dirs.scan, scandirlen) ; - path[scandirlen] = '/' ; - memcpy(path + scandirlen + 1, *argv, arglen) ; - path[scandirlen + 1 + arglen] = 0 ; - if (!s6_svstatus_read(path, &status)) - strerr_diefu2sys(111, "read status file for service ", path) ; - if (status.pid && !status.flagfinishing) kill(status.pid, sig) ; - } - return 0 ; -} - - -enum gola_e -{ - GOLA_SIGNAL, - GOLA_N -} ; - -static gol_arg const rgola[GOLA_N] = -{ - { .so = 's', .lo = "signal", .i = GOLA_SIGNAL }, -} ; - -int process_kill (char const *const *argv) -{ - char const *wgola[GOLA_N] = { 0 } ; - char const *svcopt = 0 ; - size_t argc ; - int sig = SIGTERM ; - PROG = "s6 process kill" ; - - argv += gol_argv(argv, 0, 0, rgola, GOLA_N, 0, wgola) ; - if (!argv) dieusage() ; - if (wgola[GOLA_SIGNAL]) - { - if (!sig0_scan(wgola[GOLA_SIGNAL], &sig)) - strerr_dief1x(100, "--signal= argument must be the name or number of a signal") ; - } - argc = env_len(argv) ; - process_check_services(argv, argc) ; - switch (sig) - { - case SIGALRM : svcopt = "-a" ; break ; - case SIGABRT : svcopt = "-b" ; break ; - case SIGQUIT : svcopt = "-q" ; break ; - case SIGHUP : svcopt = "-h" ; break ; - case SIGKILL : svcopt = "-k" ; break ; - case SIGTERM : svcopt = "-t" ; break ; - case SIGINT : svcopt = "-i" ; break ; - case SIGUSR1 : svcopt = "-1" ; break ; - case SIGUSR2 : svcopt = "-2" ; break ; - case SIGSTOP : svcopt = "-p" ; break ; - case SIGCONT : svcopt = "-c" ; break ; - case SIGWINCH: svcopt = "-y" ; break ; - } - return svcopt ? process_send_svc(svcopt, argv, argc) : process_kill_hack_kill(sig, argv) ; -} -- cgit v1.3.1