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 <edlinuxg...@gmail.com> wrote: > > > On Tuesday, January 10, 2017, Jonathan Haddad <j...@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 <bhu1ra...@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 <ajaygargn...@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 <eev...@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