aboutsummaryrefslogtreecommitdiffstats
path: root/misc-utils/kill.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc-utils/kill.c')
-rw-r--r--misc-utils/kill.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/misc-utils/kill.c b/misc-utils/kill.c
index d461b36a66..e678661873 100644
--- a/misc-utils/kill.c
+++ b/misc-utils/kill.c
@@ -381,6 +381,10 @@ static char **parse_arguments(int argc, char **argv, struct kill_control *ctl)
ctl->do_pid = 1;
if (ctl->do_kill)
errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--signal");
+#ifdef HAVE_SIGQUEUE
+ if (ctl->use_sigval)
+ errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--queue");
+#endif
continue;
}
if (!strcmp(arg, "-s") || !strcmp(arg, "--signal")) {
@@ -399,6 +403,8 @@ static char **parse_arguments(int argc, char **argv, struct kill_control *ctl)
if (!strcmp(arg, "-q") || !strcmp(arg, "--queue")) {
if (argc < 2)
errx(EXIT_FAILURE, _("option '%s' requires an argument"), arg);
+ if (ctl->do_pid)
+ errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--queue");
argc--, argv++;
arg = *argv;
if ((ctl->numsig = arg_to_signum(arg, 0)) < 0)