[Löst] Servern fryser av Crashplan

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

[Löst] Servern fryser av Crashplan

Inlägg av walle »

Jag använder Crashplan för att kunna ta backup av mina datorer, både Linux, windows och mac. På mina arbetsdatorer samt en dator med desktop ubuntu installation verkar det fungera fint. Dock när det kommer till min server med Ubuntu server 10.10 så är det inte lika frid och fröjd.

Från det att Crashplan startas så tar det ett par minuter innan serven slutar svara. Enda sättet att få igång den igen är att göra en manuell omstart av serven. När jag kollar i Top så använder Java ca 140% av CPU-kraften innan serven slutar att svara.

Några idéer om vad det kan vara? Finns det ett sätt att lösa problemet? Om problemlösning inte finns, kan man på något sätt isolera Crashplan-processen så att den köras ändå fast med begränsningar?

Man startar crashplan med kommandot sudo /usr/local/crashplan/bin/CrashPlanEngine start.
Senast redigerad av 1 walle, redigerad totalt 24 gånger.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Servern fryser av Crashplan

Inlägg av Konservburk »

walle skrev:kan man på något sätt isolera Crashplan-processen så att den köras ändå fast med begränsningar?
Du skulle kunna ta en titt på nice och/eller ulimit.
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Servern fryser av Crashplan

Inlägg av walle »

Humm, när jag googlade på Nice hittade jag detta:

http://support.crashplanpro.com/doku.ph ... redirect=1

Och tittar man i koden (bifogar längre ned i inlägget) som sidan föreslagit så har dem redan nice-kommandot där. Dessutom verkade min server strejka igen idag trots att crashplan var urinstallerat.

Skulle det vara något hårdvarufel istället? Vad kan i så fall vara då? Är det värt att kolla loggarna (och i så fall hur)?

Kod: Markera allt

#!/bin/bash

#############################################################
# Init script for CrashPlanEngine
#############################################################

# Common functions used for startup operations
standard_startup() {

	echo "Using standard startup"
	
	cd $TARGETDIR
		
	nice -n 19 $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log & 
	
	if [[ $! -gt 0 ]]; then
		echo $! > $PIDFILE
		echo "OK"
	else
		echo "FAIL" 
		exit 1
	fi
}

ubuntu904_startup() {

	echo "Using Ubuntu 9.04 startup"
	
	start-stop-daemon -v --pidfile $PIDFILE --make-pidfile --background --chdir $TARGETDIR --start --nicelevel 19 --exec $JAVACOMMON -- $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log
	
	# This test isn't as useful as one might like; start-stop-daemon can't accurately report the state of child processes when --background is used.
	# We use this mainly to report the specific error value returned by start-stop-daemon if something goes wrong, but be aware that a return value
	# of zero may not necessarily indicate successful startup.
	RV=$?
	if [[ $RV -eq 0 ]]; then
		echo "OK"
	else
		echo "FAIL, return value: $RV" 
		exit 1
	fi
}

# Ubuntu 9 is not correctly handling the conventional use case for UNIX startup (i.e. invoking our Java app in the background).  Functioning init scripts
# for Ubuntu 9 seem to rely on start-stop-daemon to correctly execute jobs in the background so we'll do the same if we're dealing with that specific
# distro and version.
do_startup() {

	echo -n "Starting $DESC ... "

	# We'll use the LSB utilities to determine what distro and version we're dealing with.  Ubuntu 9 is known
	# to offer fairly good LSB support so we can say with some degree of certainty that missing LSB binaries
	# indicates a platform other than Ubuntu 9 or better.		
    LSB_BIN=`which lsb_release 2> /dev/null`

    # Note that if we don't find lsb_release binary we fail through to the default "false" case (since 
    # we're definitely not dealing Ubuntu 9 or above)
    if [[ $? != 0 ]]; then
		standard_startup
	else
	
    	# Fortunately params for lsb_release are standarized by... well, LSB.
    	RELEASE_VERSION=`lsb_release -r -s`
    	RELEASE_VENDOR=`lsb_release -i -s`

		# Don't bother with anything special unless we're dealing with an Ubuntu release    
    	if [[ $RELEASE_VENDOR != "Ubuntu" ]]; then
			standard_startup
		else
		
    		# Extract the major and minor version
    		MAJOR_RELEASE_VERSION=${RELEASE_VERSION%.*}
    		MINOR_RELEASE_VERSION=${RELEASE_VERSION#*.} 
    		if [[ $MAJOR_RELEASE_VERSION -eq 9 && $MINOR_RELEASE_VERSION -eq 4 ]]; then
				ubuntu904_startup
    		else
				standard_startup
    		fi
    	fi
    fi
}

SCRIPT=$(ls -l $0 | awk '{ print $NF }')
SCRIPTDIR=$(dirname $SCRIPT)
TARGETDIR="$SCRIPTDIR/.."

# Remaining Defaults
DESC="CrashPlan Engine"
NAME=CrashPlanEngine
DAEMON=$TARGETDIR/lib/com.backup42.desktop.jar
PIDFILE="$TARGETDIR/${NAME}.pid"

if [[ -f $TARGETDIR/install.vars ]]; then
	. $TARGETDIR/install.vars
else
	echo "Did not find $TARGETDIR/install.vars file."
	exit 1
fi

if [[ ! -f $DAEMON ]]; then
	echo "Could not find JAR file $DAEMON"
	exit 0
fi

if [[ ${LC_ALL} ]]; then
	LOCALE=`sed 's/\..*//g' <<< ${LC_ALL}`
	export LC_ALL="${LOCALE}.UTF-8"
elif [[ ${LC_CTYPE} ]]; then
	LOCALE=`sed 's/\..*//g' <<< ${LC_CTYPE}`
	export LC_CTYPE="${LOCALE}.UTF-8"
elif [[ ${LANG} ]]; then
	LOCALE=`sed 's/\..*//g' <<< ${LANG}`
	export LANG="${LOCALE}.UTF-8"
else
	export LANG="en_US.UTF-8"
fi

if [[ -f $TARGETDIR/bin/run.conf ]]; then
	. $TARGETDIR/bin/run.conf
else
	echo "Did not find $TARGETDIR/bin/run.conf file."
fi

case $1 in
	start)
	
		FULL_CP="$TARGETDIR/lib/com.backup42.desktop.jar:$TARGETDIR/lang"
                
		PID=`/bin/ps -eo 'pid,cmd'| grep 'app=CrashPlanService' | grep -v grep | awk '{sub("^ ", "", $0); print $0}' | cut -d " " -f 1`
		if [[ -n "$PID" ]]; then
			echo CrashPlan is already running with pid $PID
			exit 1;
		fi
				
		do_startup
		
		;;
	stop)
		echo -n "Stopping $DESC ... "
		if [[ -f $PIDFILE ]] ; then
			kill `cat $PIDFILE`
			sleep 10
		fi
		PID=`/bin/ps -eo 'pid,cmd'| grep 'app=CrashPlanService' | grep -v grep | awk '{sub("^ ", "", $0); print $0}' | cut -d " " -f 1`
		if [[ -n "$PID" ]]; then
			echo "Still running, killing PID=$PID ... "
			kill -9 $PID
		fi
		rm -f $PIDFILE
		echo "OK"
		;;
	restart|force-reload)
		echo -n "Restarting $DESC ... "
		$0 stop
		sleep 5
		$0 start
  		;;
	status)
		PID=`/bin/ps -eo 'pid,cmd'| grep 'app=CrashPlanService' | grep -v grep | awk '{sub("^ ", "", $0); print $0}' | cut -d " " -f 1`
		if [[ -n "$PID" ]]; then
			echo "$DESC (pid $PID) is running."
		else
			echo "$DESC is stopped."
		fi
		;;
	*) 	
		echo "Usage: $0 <start|stop|restart|force-reload|status>" >&2
		exit 3
		;;
esac

exit 0
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Servern fryser av Crashplan

Inlägg av walle »

Efter lite efterforskning visade det sig att det var ett hårdvarufel som orsakade frysningen. Förmodligen berodde detta på en defekt processor, men eventuellt kunde det ha varit moderkortet. Hur som helst, både moderkort och processor är utbytta och nu fungerar det allt som det ska igen.
Skriv svar

Återgå till "Terminalforum"