Hi Hannu. On Wed, Jan 11, 2017 at 8:31 PM, Hannu Kröger <hkro...@gmail.com> wrote:
> One possible reason is that cassandra process gets different user when run > differently. Check who owns the data files and check also what gets written > into the /var/log/cassandra/system.log (or whatever that was). > Absolutely nothing gets written to /var/log/cassandra/system.log (when trying to invoke cassandra via cron). > > Hannu > > > On 11 Jan 2017, at 16.42, Ajay Garg <ajaygargn...@gmail.com> wrote: > > 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 > > > -- Regards, Ajay