BOINC vs. Linux (FC5)

Obecná diskuse týkající se systému BOINC

Moderátoři: zdespi, Moderátoři

Uživatelský avatar
Honasss
Mírně pokročilý
Mírně pokročilý
Příspěvky: 138
Registrován: pát črc 29, 2005 11:25 am
Kontaktovat uživatele:

BOINC vs. Linux (FC5)

Příspěvek od Honasss »

Mám přístup k pár linuxovým mašinám v inet-kavarně a říkám si, že by bylo třeba je nějak využít :) ... bohužel Linuxu rozumím asi stejně jako arabštině, přestože se mi povedlo na PC nainstalovat Fedoru 5 i Boinc, nevím jak ho automaticky spouštět po startu.
Už mi to funguje, když jsem přihlášený root. Po startu se mi však automaticky přihlašuje user a tam se boinc nespustí ... plízz help
vejpuste
BOINC Guru
BOINC Guru
Příspěvky: 954
Registrován: čtv čer 16, 2005 11:00 am
Bydliště: Praha Zbraslav
Kontaktovat uživatele:

Příspěvek od vejpuste »

Nejjednodussi je vyrobit service a dat ji spustit pri bootu. Nezalezi na tom, kdy a jestli vubec se nekdo naloguje.
Vyrob uzivatele boinc : useradd boinc
V adresari /home/boinc vyrob adresar BOINC, kam nahraj boinc core, pripadne s account souborama.

V /etc/init.d/ vyrob soubor boinc s obsahem :
#!/bin/sh
#
# BOINC - start and stop the BOINC client daemon on Unix
#
# Unix start/stop script to run the BOINC client as a daemon at
# system startup, as the 'boinc' user (not root!).
#
# This version works on Red Hat Linux, Fedora Core, Mandrake,
# and Slackware Linux, and should work on generic Linux systems
# provided they have 'pidof'. Metadata for chkconfig and the SUSE
# equivalent INIT info are included below.
#
# Usage: boinc { start | stop | status | restart }
#
###
# chkconfig: 345 71 29
# description: This script starts the local BOINC client as a daemon
# For more information about BOINC (the Berkeley Open Infrastructure
# for Network Computing) see http://boinc.ssl.berkeley.edu
# processname: boinc
# config: /etc/sysconfig/boinc
#
### BEGIN INIT INFO
# Provides: boinc
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: This script starts the local BOINC client as a daemon
# For more information about BOINC (the Berkeley Open Infrastructure
# for Network Computing) see http://boinc.ssl.berkeley.edu
### END INIT INFO
#
# Eric Myers <myers@vassar.edu> - 27 July 2004
# Department of Physics and Astronomy, Vassar College, Poughkeepsie NY
# @(#) $Id: boinc,v 2.4 2005/05/24 14:00:07 myers Exp $
########################################################################

# Defaults, which can be overridden by /etc/sysconfig/boinc

BOINCUSER=boinc
BOINCDIR=/home/boinc/BOINC
BUILD_ARCH=i686-pc-linux-gnu

# Log and error files (you should rotate these occasionally)
LOGFILE=boinc.log
ERRORLOG=error.log

# Mandrake 10.1 really wants a lock file...
LOCKDIR=/var/lock/subsys

# BOINC options:
#BOINCOPTS="-allow_remote_gui_rpc" # opens up your machine to the world!
BOINCOPTS="-return_results_immediately -allow_remote_gui_rpc"

# Just set the path to what is needed, nothing more (for security)

PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH

# Init script function library. This stuff is Red Hat specific,
# but if the functions are not found we create our own simple replacements.
# (The idea for replacing the functions comes from OpenAFS. Thanks guys!)

if [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
function echo_success () { echo -n " [ OK ] " ; }
function echo_failure () { echo -n " [FAILED] " ; }
function echo_warning () { echo -n " [WARNING] " ; }
function killproc() {
PID=`pidof -s -x -o $$ -o $PPID -o %PPID $1`
[ $PID ] && kill $PID ; }
fi


# su on Linux seems to need this to be set to work properly
export TERM dumb


# Look for any local configuration settings:

if [ -f /etc/sysconfig/boinc ]; then
. /etc/sysconfig/boinc
fi


## Locate the working directory

if [ ! -d $BOINCDIR ]; then
echo "Cannot find BOINC directory $BOINCDIR "
exit 7
fi


## Locate the executable, either boinc_client,
## or boinc with highest version number

BOINCEXE=$BOINCDIR/boinc
if [ ! -x $BOINCEXE ]; then
BOINCEXE=`/bin/ls -1 $BOINCDIR/boinc_*_$BUILD_ARCH 2>/dev/null | tail -1 `
fi

if [ ! -x "$BOINCEXE" ]; then
echo "Cannot find/run BOINC executable. $BOINCEXE "
exit 2
fi



## Functions: $1 is start/stop/status/restart

case "$1" in
start)
cd $BOINCDIR

if [ -f lockfile ] ; then
echo -n "Another instance of BOINC is running (lockfile exists)."
echo_failure
echo
exit 4
fi

if [ ! -f client_state.xml ] ; then
echo -n "The BOINC client requires initialization."
echo_warning
echo
fi

echo -n "Starting BOINC client as a daemon: "
chown -R boinc.boinc ~boinc
su $BOINCUSER -c "$BOINCEXE $BOINCOPTS" >>$LOGFILE 2>>$ERRORLOG &
sleep 1
PID=`pidof -s -x -o $$ -o $PPID -o %PPID $BOINCEXE`
if [ $PID ]; then
touch $LOCKDIR/boinc
echo_success
else
echo_failure
fi
echo
;;

stop)
cd $BOINCDIR
if [ ! -f lockfile -a ! -f $LOCKDIR/boinc ] ; then
echo -n "BOINC is not running (no lockfile found)."
echo_success
else
echo -n "Stopping BOINC client daemon: "
killproc $BOINCEXE && echo_success || echo_failure
# clean up in any case
rm -f $BOINCDIR/lockfile
rm -f $LOCKDIR/boinc
fi
echo
;;

restart)
$0 stop
$0 start
;;

status)
PID=`pidof -x -o $$ -o $PPID -o %PPID boinc_client`
if [ "$PID" == "" ]; then
PID=`pidof -x -o $$ -o $PPID -o %PPID $BOINCEXE`
fi
if [ "$PID" != "" ]; then
echo "BOINC client is running (pid $PID)."
else
if [ -f $BOINCDIR/lockfile -o -f $LOCKDIR/boinc ]; then
echo "BOINC is stopped but lockfile exists."
else
echo "BOINC client is stopped."
fi
fi
;;

*)
echo "Usage: boinc {start|stop|restart|status}"
exit 1
esac

exit

#EOF#

Pak spust : chkconfig --add boinc
coz zajisti spousteni po startu systemu.
Zkus : service boinc start a v /home/boinc/BOINC/boinc.log sleduj co to dela.
Melo by to fungovat.

Libor
Uživatelský avatar
Honasss
Mírně pokročilý
Mírně pokročilý
Příspěvky: 138
Registrován: pát črc 29, 2005 11:25 am
Kontaktovat uživatele:

Příspěvek od Honasss »

služba boinc se vytvořila, ale po zadání service boinc start hodí hlášku boinc: unrecognized service a nespustí se, log soubor se taky nevytvořil :(
Uživatelský avatar
FordPrefect
BOINC Guru
BOINC Guru
Příspěvky: 1266
Registrován: stř pro 15, 2004 12:02 pm
Bydliště: Zlate Mesto
Kontaktovat uživatele:

Příspěvek od FordPrefect »

Fedoru neznam, ale obvykle je mozne to nastavit klikanim. Pokud to nejde najit, staci upravit startovaci skripty.
Ty jsou obvykle v /etc/init.d nebo /etc/rc.d . V tom a adresari nebo jeho podadresarich si najdi nejaky vhodny script, ktery se spousti v runlevel 4 nebo 5. Obvykle treba v adresari rc4.d nebo rc5.d. Pokd se ti spusti graficke prostredi automaticky po startu, trebas pomoci xdm nebo kdm, pridej na konec toho scriptu radek( rc.kdm rc.xdm ) radek

/usr/local/bin/runBOINC

a vytvor jednoduchy script /usr/local/bin/runBOINC ve kterem bude

cd /root/boinc ( nebo jiny adresar, ve kterem boinc je )
nohup ./boinc_client &

a pak jeste pridej tomuto scriptu prava pro spusteni
chmod u+x /usr/local/bin/runBOINC
vejpuste
BOINC Guru
BOINC Guru
Příspěvky: 954
Registrován: čtv čer 16, 2005 11:00 am
Bydliště: Praha Zbraslav
Kontaktovat uživatele:

Příspěvek od vejpuste »

Samozrejme je potreba nastavit spustitelnost nove vytvoreneho souboru, To jsem zapomnel napsat.
chmod u+x /etc/init.d/boinc
Pak uz by melo fungovat /etc/init.d/boinc start nebo service boinc start
Libor
Uživatelský avatar
Honasss
Mírně pokročilý
Mírně pokročilý
Příspěvky: 138
Registrován: pát črc 29, 2005 11:25 am
Kontaktovat uživatele:

Příspěvek od Honasss »

to Fordperfect:
dík funguje to když přidám odkaz na konec souboru etc/rc.local a místo boinc_client ve scriptu napíšu run_client :)

přesto mi to nedá a chtěl bych zprovoznit boinc jako službu...

to Vejpuste:
teď pro změnu hlásí: BOINC is stopped but lockfile exists.
Obsah lockfile:

2006-07-24 16:53:11.7554 [normal]: Start of BOINC application 'einstein_S5R1_4.01_i686-pc-linux-gnu'.
2006-07-24 16:53:11.7666 [normal]: Started search at lalDebugLevel = 0
2006-07-24 16:53:12.2139 [normal]: Checkpoint-file 'Fstat.out.ckp' not found.
2006-07-24 16:53:12.2142 [normal]: No usable checkpoint found, starting from beginning.
Detected CPU type 1

oprava: po startu PC - BOINC is stopped, je třeba službu restartovat a pak už běží normálně
Uživatelský avatar
FordPrefect
BOINC Guru
BOINC Guru
Příspěvky: 1266
Registrován: stř pro 15, 2004 12:02 pm
Bydliště: Zlate Mesto
Kontaktovat uživatele:

Příspěvek od FordPrefect »

Co to je sluzba? To je fiktivni termin, ktery vymysleli v ms. Ma to proste bezet nonstop, a to navod splnuje. Libor to trochu komplikuje nejakym slozitym scriptem. Da se to taky zacyklit, kdyby client nahodou krachnul. Jo a taky asi neni uplne korektni, aby ten client bezel pod rootem, coz je od Libora dobra pripominka. Takze muzes udelat uzivatele boinc, a BOINC nainstalit do nejakeho domovskeho adresare, obvykle /home/boinc . Pak staci pridat chmod +S /home/boinc/boinc_client
vejpuste
BOINC Guru
BOINC Guru
Příspěvky: 954
Registrován: čtv čer 16, 2005 11:00 am
Bydliště: Praha Zbraslav
Kontaktovat uživatele:

Příspěvek od vejpuste »

2 Honasss : To se mohlo stat treba tim, ze jsi boinc spustil jinym zpusobem a bezel nebo kdyz se nekorektne ukonci.
Nekdy proto davam do casti start pred start stop. Start se pak chova jako restart a nabehne vzdy.

case "$1" in
start)
$0 stop
cd $BOINCDIR

2 FordPrefect : Sluzba neni fiktivni termin MS. Vzdyt i v Linuxu se to muze spoustet "service boinc start". Stejnym zpusobem se zavadi cely system (network, apache, mysql, oracle, ....) Samozrejme to muzes zapsat i primo do spousteciho scriptu, ale uz tim neudelas jednoduche service boinc stop, service httpd restart, service sendmail status a podobne.
Libor
Uživatelský avatar
FordPrefect
BOINC Guru
BOINC Guru
Příspěvky: 1266
Registrován: stř pro 15, 2004 12:02 pm
Bydliště: Zlate Mesto
Kontaktovat uživatele:

Příspěvek od FordPrefect »

2 Libor: u projektu jako apache nebo oracle je to jiste opodstatnene, protoze administrator potrebuje mit nastroje pro "manipulaci". Ale u boinc mi to trochu prijde jako kanon na vrabce. Ale o tom unixove systemy jsou, clovek si muze vybrat :idea:
vejpuste
BOINC Guru
BOINC Guru
Příspěvky: 954
Registrován: čtv čer 16, 2005 11:00 am
Bydliště: Praha Zbraslav
Kontaktovat uživatele:

Příspěvek od vejpuste »

2 FordPrefect : Prave. Moznosti je vic, ale i u BOINCu se obcas hodi moznost stopnout ho nebo restartovat a obzvlast pro lidi, kteri s tim moc neumi je tohle nejjednodussi. A i ja jsem linej, takze to pouzivam. Sem tam pri zaloze, sem tam pri upgradu a sem tam, kdyz sam od sebe spadne.
Ted mam trochu cerne svedomi, ze klimatizace jednou na plne pecky, energeticka krize a ja topim BOINCem, ale zatim se kvuli tomu nebudim, tak to jede.
Jenom ucebny jsou osirele, takze nepracujou. :-(
Libor
Uživatelský avatar
FordPrefect
BOINC Guru
BOINC Guru
Příspěvky: 1266
Registrován: stř pro 15, 2004 12:02 pm
Bydliště: Zlate Mesto
Kontaktovat uživatele:

Příspěvek od FordPrefect »

Jo, taky mi obcas prijde hloupe, kdyz sef vecer prijde do prace a vsude jedou pocitadla :D Me toho nejede tolik jako tobe, takze moje spotreba si na elektrickou sit nema takovy vliv, jako tvoje stroje. btw je smutne, ze ucebny nejedou :cry: Jejich 10k/day nam trochu chybi
Uživatelský avatar
Honasss
Mírně pokročilý
Mírně pokročilý
Příspěvky: 138
Registrován: pát črc 29, 2005 11:25 am
Kontaktovat uživatele:

Příspěvek od Honasss »

2Vejpuste: bohužel ani vložit $0 stop nepomohlo, pořád je třeba službu restartovat :(
Uživatelský avatar
FordPrefect
BOINC Guru
BOINC Guru
Příspěvky: 1266
Registrován: stř pro 15, 2004 12:02 pm
Bydliště: Zlate Mesto
Kontaktovat uživatele:

Příspěvek od FordPrefect »

Honasss píše:2Vejpuste: bohužel ani vložit $0 stop nepomohlo, pořád je třeba službu restartovat :(
muzes to stopnout z shellu. Musis pozabijet vsechny procesy boincu. Pomoci "ps x" si vypises vsechny procesy.
Kazdy proces ma takzvany PID, cili cislo procesu. Prikazem "kill -9 cislo_procesu" proces ukoncis. Muzes taky pouzit prikaz killall, viz man( man kill a man killall )
vejpuste
BOINC Guru
BOINC Guru
Příspěvky: 954
Registrován: čtv čer 16, 2005 11:00 am
Bydliště: Praha Zbraslav
Kontaktovat uživatele:

Příspěvek od vejpuste »

2 Honasss : To je dost divne, protoze restart udela presne to same. Kdyz das start, tak by se Ti mel zobrazit nejdriv pokus o stop a pak teprve start. Ja to mam presne takhle a funguje to.
Zkus si jeste dat chkconfig --list |grep boinc
Pokud vypise : boinc 0:off 1:off 2:off 3: on 4: on 5: on 6:off tak je vse v poradku a melo by to po startu nabehnout nebo se aspon pokusit.
Libor
Naposledy upravil(a) vejpuste dne čtv črc 27, 2006 4:08 pm, celkem upraveno 2 x.
Uživatelský avatar
Honasss
Mírně pokročilý
Mírně pokročilý
Příspěvky: 138
Registrován: pát črc 29, 2005 11:25 am
Kontaktovat uživatele:

Příspěvek od Honasss »

jenže po restartu PC mi tam žáden boinc nevisí a přesto se služba nespustí...
Naposledy upravil(a) Honasss dne čtv črc 27, 2006 4:08 pm, celkem upraveno 1 x.
Odpovědět