kill builtin incorrectly thinks that -PGID is signal name even if the
signal name is set by -s or -n option.
Reproducer:
[rra...@dhcp-lab-170 ~]$ sleep 1d | sleep 2d | sleep 3d &
[1] 5034
[rra...@dhcp-lab-170 ~]$ ps -j
PID PGID SID TTY TIME CMD
4863 4863 4863 pts/2 00:00:00 bash
5032 5032 4863 pts/2 00:00:00 sleep
5033 5032 4863 pts/2 00:00:00 sleep
5034 5032 4863 pts/2 00:00:00 sleep
5035 5035 4863 pts/2 00:00:00 ps
[rra...@dhcp-lab-170 ~]$ kill -s TERM -5032
bash: kill: 5032: invalid signal specification
Patch:
diff -up bash-4.0/builtins/kill.def.pgid bash-4.0/builtins/kill.def
--- bash-4.0/builtins/kill.def.pgid 2009-12-11 13:56:26.000000000 +0100
+++ bash-4.0/builtins/kill.def 2009-12-11 13:58:04.000000000 +0100
@@ -121,6 +121,7 @@ kill_builtin (list)
else
sig = decode_signal (sigspec, dflags);
list = list->next;
+ saw_signal++;
}
else
{
RR