[ https://issues.apache.org/jira/browse/KAFKA-3384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15213701#comment-15213701 ]
Matt McClure commented on KAFKA-3384: ------------------------------------- I see one symptom of nonconformance to POSIX during {{vagrant provision}}. {noformat} ... ==> broker3: Killing server ==> broker3: kill: ==> broker3: invalid argument S ==> broker3: ==> broker3: Usage: ==> broker3: kill [options] <pid> [...] ==> broker3: ==> broker3: Options: ==> broker3: <pid> [...] send signal to every <pid> listed ==> broker3: -<signal>, -s, --signal <signal> ==> broker3: specify the <signal> to be sent ==> broker3: -l, --list=[<signal>] list all signal names, or convert one to a name ==> broker3: -L, --table list all signal names in a nice table ==> broker3: -h, --help display this help and exit ==> broker3: -V, --version output version information and exit ==> broker3: ==> broker3: For more details see kill(1). ==> broker3: Starting server ... {noformat} I opened a pull request to address this at https://github.com/apache/kafka/pull/1148 > bin scripts may not be portable/POSIX compliant > ----------------------------------------------- > > Key: KAFKA-3384 > URL: https://issues.apache.org/jira/browse/KAFKA-3384 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.9.0.1 > Reporter: Ewen Cheslack-Postava > Assignee: Ewen Cheslack-Postava > Fix For: 0.10.1.0 > > > We may be using some important tools in a non-POSIX compliant and > non-portable way. In particular, we've discovered that we can sometimes > trigger this error: > /usr/bin/kafka-server-stop: line 22: kill: SIGTERM: invalid signal > specification > which looks like it is caused by invoking a command like {{kill -SIGTERM > <pid>}}. (This is a lightly modified version of {{kafka-server-stop.sh}}, but > nothing of relevance has been affected.) > Googling seems to suggest that passing the signal in that way is not > compliant -- it's a shell extensions. We're using {{/bin/sh}}, but that may > be aliased to other more liberal shells on some platforms. To be honest, I'm > not sure exactly the requirements for triggering this since running the > command directly on the same host via an interactive shell still works, but > we are definitely limiting portability using the current approach. > There are a couple of possible solutions: > 1. Standardize on bash. This lets us make more permissive wrt shell features > that we use. We're already using /bin/bash in the majority of scripts anyway. > Might help us avoid a bunch of assumptions people make when bash is aliased > to sh: https://wiki.ubuntu.com/DashAsBinSh > 2. Try to clean up scripts as we discover incompatibilities. The immediate > fix for this issue seems to be to use {{kill -s TERM}} instead of {{kill > -SIGTERM}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)