[ https://issues.apache.org/jira/browse/KAFKA-3384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ismael Juma updated KAFKA-3384: ------------------------------- Fix Version/s: (was: 0.10.1.0) > 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.0.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)