Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Duplicate
-
None
-
None
-
Normal
Description
The init script tries, via start-stop-daemon, to write a pidfile to /var/run/cassandra/cassandra.pid. /var/run/cassandra doesn't exist (righftully so, /var/run can be a tmpfs), so the init script has this stanza above the start-stop-daemon invocation:
[ -e `dirname "PIDFILE"` ] || \ install -d -ocassandra -gcassandra -m750 `dirname $PIDFILE`
The first line is missing the dollar sign before the PIDFILE variable (i.e. it should be 'dirname "$PIDFILE"'). This has the effect that "dirname PIDFILE" is called, with the PIDFILE as a literal, which always returns "." as the output, which always exists, so the "install" call never gets executed, the directory never gets created and start-stop-daemon is unable to write the pidfile.
The pidfile is never written and "/etc/init.d/cassandra stop" never works.
Adding a $ before PIDFILE fixes the issue. This has been tested.
Attachments
Attachments
Issue Links
- duplicates
-
CASSANDRA-6101 Debian init script broken
- Resolved