** Description changed:
[Impact]
- Uppercase signal names are no longer accepted by killall; only lowercase
- signal names are accepted. The documentation still shows signal names in
- uppercase.
+ * Not all Uppercase signal names are accepted by killall in the new
+ version (INT + ILL + VTALRM will not work)
- This is a regression as of bionic.
+ * by that the man page refers to things no more working and old scripts
+ might break.
[Test Case]
+ * run this and check if all signals were accepted by the commandline of
killall
- # killall -int asdf
- asdf: no process found
- # killall -INT asdf
- Usage: killall [ -Z CONTEXT ] [ -u USER ] [ -y TIME ] [ -o TIME ] [ -eIgiqrvw
]
- [ -s SIGNAL | -SIGNAL ] NAME...
+ #!/bin/bash
+ #set -x
+ TNAME="uninitialized"
+
+ testkillall () {
+ local tsig=${1}
+ /tmp/${TNAME} /dev/urandom &
+ local tpid=$!;
+ echo "TEST -${tsig}";
+ killall -${tsig} "${TNAME}"
+ kill -9 "${tpid}" 2>/dev/null;
+ kill -9 "${TNAME}" 2>/dev/null;
+ }
+
+ for sig in $(killall -l | xargs); do
+ TNAME="test${sig}"
+ cp /usr/bin/md5sum "/tmp/${TNAME}"
+ testkillall "$(echo ${sig} | tr '[:lower:]' '[:upper:]')"
+ testkillall "SIG$(echo ${sig} | tr '[:lower:]' '[:upper:]')"
+ #testkillall "$(echo ${sig} | tr '[:upper:]' '[:lower:]')"
+ rm -f "/tmp/${TNAME}"
+ sync
+ done
+
[Regression Potential]
- This is a regression, and so there would be no regression potential in a
- fix.
+ * This reworks more of the argument parsing than one would like, but this
+ is due to one of such reworks being the breaking change in the former
+ version and a more minimal fix is hard to come up with.
+ Due to that obviously there could be "new" issues added to the argument
+ parsing. At least in this case we checked all signals and they worked
+ fine. Furthermore the new code also added a bunch of tests which work
+ fine since adding that.
+
+ [Other Info]
+
+ * This is a regression as of bionic.
+ ---
+
[Original Description]
Newer versions of killall (Ubuntu 18.04+) display usage when the signal
is passed like:
killall -INT <name>
and instead require it to be passed as:
killall -int <name>
In previous versions from Ubuntu 14.04 and 16.04, this doesn't happen.
Is this a bug or a feature change? If so perhaps it should be noted in
the usage information? The man page suggests capitals with "-SIGNAL".
but that doesn't work any more.
Hamish
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1806060
Title:
Newer versions of killall (Ubuntu 18.04+) fail when signal specified
in capitals
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/psmisc/+bug/1806060/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs