cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ajay Garg <ajaygargn...@gmail.com>
Subject Re: Strange issue wherein cassandra not being started from cron
Date Wed, 11 Jan 2017 14:42:33 GMT
Tried everything.
Every other cron job/script I try works, just the cassandra-service does
not.

On Wed, Jan 11, 2017 at 8:51 AM, Edward Capriolo <edlinuxguru@gmail.com>
wrote:

>
>
> On Tuesday, January 10, 2017, Jonathan Haddad <jon@jonhaddad.com> wrote:
>
>> Last I checked, cron doesn't load the same, full environment you see when
>> you log in. Also, why put Cassandra on a cron?
>> On Mon, Jan 9, 2017 at 9:47 PM Bhuvan Rawal <bhu1rawal@gmail.com> wrote:
>>
>>> Hi Ajay,
>>>
>>> Have you had a look at cron logs? - mine is in path /var/log/cron
>>>
>>> Thanks & Regards,
>>>
>>> On Tue, Jan 10, 2017 at 9:45 AM, Ajay Garg <ajaygargnsit@gmail.com>
>>> wrote:
>>>
>>>> Hi All.
>>>>
>>>> Facing a very weird issue, wherein the command
>>>>
>>>> */etc/init.d/cassandra start*
>>>>
>>>> causes cassandra to start when the command is run from command-line.
>>>>
>>>>
>>>> However, if I put the above as a cron job
>>>>
>>>>
>>>>
>>>> ** * * * * /etc/init.d/cassandra start*
>>>> cassandra never starts.
>>>>
>>>>
>>>> I have checked, and "cron" service is running.
>>>>
>>>>
>>>> Any ideas what might be wrong?
>>>> I am pasting the cassandra script for brevity.
>>>>
>>>>
>>>> Thanks and Regards,
>>>> Ajay
>>>>
>>>>
>>>> ############################################################
>>>> ########################################
>>>> #! /bin/sh
>>>> ### BEGIN INIT INFO
>>>> # Provides:          cassandra
>>>> # Required-Start:    $remote_fs $network $named $time
>>>> # Required-Stop:     $remote_fs $network $named $time
>>>> # Should-Start:      ntp mdadm
>>>> # Should-Stop:       ntp mdadm
>>>> # Default-Start:     2 3 4 5
>>>> # Default-Stop:      0 1 6
>>>> # Short-Description: distributed storage system for structured data
>>>> # Description:       Cassandra is a distributed (peer-to-peer) system
>>>> for
>>>> #                    the management and storage of structured data.
>>>> ### END INIT INFO
>>>>
>>>> # Author: Eric Evans <eevans@racklabs.com>
>>>>
>>>> DESC="Cassandra"
>>>> NAME=cassandra
>>>> PIDFILE=/var/run/$NAME/$NAME.pid
>>>> SCRIPTNAME=/etc/init.d/$NAME
>>>> CONFDIR=/etc/cassandra
>>>> WAIT_FOR_START=10
>>>> CASSANDRA_HOME=/usr/share/cassandra
>>>> FD_LIMIT=100000
>>>>
>>>> [ -e /usr/share/cassandra/apache-cassandra.jar ] || exit 0
>>>> [ -e /etc/cassandra/cassandra.yaml ] || exit 0
>>>> [ -e /etc/cassandra/cassandra-env.sh ] || exit 0
>>>>
>>>> # Read configuration variable file if it is present
>>>> [ -r /etc/default/$NAME ] && . /etc/default/$NAME
>>>>
>>>> # Read Cassandra environment file.
>>>> . /etc/cassandra/cassandra-env.sh
>>>>
>>>> if [ -z "$JVM_OPTS" ]; then
>>>>     echo "Initialization failed; \$JVM_OPTS not set!" >&2
>>>>     exit 3
>>>> fi
>>>>
>>>> export JVM_OPTS
>>>>
>>>> # Export JAVA_HOME, if set.
>>>> [ -n "$JAVA_HOME" ] && export JAVA_HOME
>>>>
>>>> # Load the VERBOSE setting and other rcS variables
>>>> . /lib/init/vars.sh
>>>>
>>>> # Define LSB log_* functions.
>>>> # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
>>>> . /lib/lsb/init-functions
>>>>
>>>> #
>>>> # Function that returns 0 if process is running, or nonzero if not.
>>>> #
>>>> # The nonzero value is 3 if the process is simply not running, and 1 if
>>>> the
>>>> # process is not running but the pidfile exists (to match the exit
>>>> codes for
>>>> # the "status" command; see LSB core spec 3.1, section 20.2)
>>>> #
>>>> CMD_PATT="cassandra.+CassandraDaemon"
>>>> is_running()
>>>> {
>>>>     if [ -f $PIDFILE ]; then
>>>>         pid=`cat $PIDFILE`
>>>>         grep -Eq "$CMD_PATT" "/proc/$pid/cmdline" 2>/dev/null &&
return
>>>> 0
>>>>         return 1
>>>>     fi
>>>>     return 3
>>>> }
>>>> #
>>>> # Function that starts the daemon/service
>>>> #
>>>> do_start()
>>>> {
>>>>     # Return
>>>>     #   0 if daemon has been started
>>>>     #   1 if daemon was already running
>>>>     #   2 if daemon could not be started
>>>>
>>>>     ulimit -l unlimited
>>>>     ulimit -n "$FD_LIMIT"
>>>>
>>>>     cassandra_home=`getent passwd cassandra | awk -F ':' '{ print $6;
>>>> }'`
>>>>     heap_dump_f="$cassandra_home/java_`date +%s`.hprof"
>>>>     error_log_f="$cassandra_home/hs_err_`date +%s`.log"
>>>>
>>>>     [ -e `dirname "$PIDFILE"` ] || \
>>>>         install -d -ocassandra -gcassandra -m755 `dirname $PIDFILE`
>>>>
>>>>
>>>>
>>>>     start-stop-daemon -S -c cassandra -a /usr/sbin/cassandra -q -p
>>>> "$PIDFILE" -t >/dev/null || return 1
>>>>
>>>>     start-stop-daemon -S -c cassandra -a /usr/sbin/cassandra -b -p
>>>> "$PIDFILE" -- \
>>>>         -p "$PIDFILE" -H "$heap_dump_f" -E "$error_log_f" >/dev/null ||
>>>> return 2
>>>>
>>>> }
>>>>
>>>> #
>>>> # Function that stops the daemon/service
>>>> #
>>>> do_stop()
>>>> {
>>>>     # Return
>>>>     #   0 if daemon has been stopped
>>>>     #   1 if daemon was already stopped
>>>>     #   2 if daemon could not be stopped
>>>>     #   other if a failure occurred
>>>>     start-stop-daemon -K -p "$PIDFILE" -R TERM/30/KILL/5 >/dev/null
>>>>     RET=$?
>>>>     rm -f "$PIDFILE"
>>>>     return $RET
>>>> }
>>>>
>>>> case "$1" in
>>>>   start)
>>>>         [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
>>>>         do_start
>>>>         case "$?" in
>>>>                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
>>>>                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
>>>>         esac
>>>>         ;;
>>>>   stop)
>>>>         [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
>>>>         do_stop
>>>>         case "$?" in
>>>>                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
>>>>                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
>>>>         esac
>>>>         ;;
>>>>   restart|force-reload)
>>>>         log_daemon_msg "Restarting $DESC" "$NAME"
>>>>         do_stop
>>>>         case "$?" in
>>>>           0|1)
>>>>                 do_start
>>>>                 case "$?" in
>>>>           0|1)
>>>>                 do_start
>>>>                 case "$?" in
>>>>                         0) log_end_msg 0 ;;
>>>>                         1) log_end_msg 1 ;; # Old process is still
>>>> running
>>>>                         *) log_end_msg 1 ;; # Failed to start
>>>>                 esac
>>>>                 ;;
>>>>           *)
>>>>                 # Failed to stop
>>>>                 log_end_msg 1
>>>>                 ;;
>>>>         esac
>>>>         ;;
>>>>   status)
>>>>     is_running
>>>>     stat=$?
>>>>     case "$stat" in
>>>>       0) log_success_msg "$DESC is running" ;;
>>>>       1) log_failure_msg "could not access pidfile for $DESC" ;;
>>>>       *) log_success_msg "$DESC is not running" ;;
>>>>     esac
>>>>     exit "$stat"
>>>>     ;;
>>>>   *)
>>>>         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}"
>>>> >&2
>>>>         exit 3
>>>>         ;;
>>>> esac
>>>>
>>>> :
>>>>
>>>> # vi:ai sw=4 ts=4 tw=0 et
>>>> ############################################################
>>>> ########################################
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Ajay
>>>>
>>>
>>>
> Right. Cron is not a full shell and does not by default source things like
> .profile. crons man pages discuss this.
>
> A shortcut is sometimes
> * * * * * /etc/profile & cmd
>
>
>
> --
> Sorry this was sent from mobile. Will do less grammar and spell check than
> usual.
>



-- 
Regards,
Ajay

Mime
View raw message