init.d script runs correctly but process doesn't live when booted fully up
- by thetrompf
I have a problem with an init.d script
#!/bin/bash
ES_HOME="/var/es/current"
PID=$(ps ax | grep elasticsearch | grep $ES_HOME | grep -v grep | awk '{print $1}')
#echo $PID
#exit 0
case "$1" in
start)
if [ -z "$PID" ]; then
echo "Starting Elasticsearch"
echo "Starting Elasticsearch" /var/tmp/elasticsearch
su -m elasticsearch -c "${ES_HOME}/bin/elasticsearch"
exit 0;
else
echo "Elasticsearch already running"
echo "Elasticsearch already running" /var/tmp/elasticsearch
exit 0;
fi
;;
stop)
if [ -n "$PID" ]; then
echo "Stopping Elasticsearch"
kill ${PID}
echo "Stopped Elasticsearch"
exit 0;
else
echo "Elasticsearch is not running"
exit 0;
fi
;;
esac
The scripts runs just file, as I can see in /var/tmp/elasticsearch a new line is added after every boot, but if I run:
/etc/init.d/elasticsearch stop
Just after the server is booted, I get "Elasticsearch is not running", ergo somehow the process does not stay alive. My question is why? and what am I doing wrong?
Thanks in advance.