TWLan Forum

Full Version: Problem Linux event.sh Multi-Welten
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Ich hab das Problem, dass die event.sh nicht für beide Welten rechnet.

event.sh voher:
Quote:#!/bin/sh
# Copyright 2010 Lekensteyn
# This script is public domain and comes with NO WARRANTY of any kind
#
# Events handler (handles build queue, attacks, etc)
if test `id -u` -eq 0;then
sudo -u nobody -- "$0"
exit
fi
running=true
trap 'running=false' 1 2 3 15
cd "$(dirname "$0")/.."
BASEDIR="`pwd`"
PIDFILE="$BASEDIR/tmp/event.pid"
killed=
# if a pidfile still exist (unclean shutdown), kill that pid and wait
# 2 seconds for it to catch our signal
test -f "$PIDFILE" && kill -15 "`cat "$PIDFILE"`" >/dev/null && killed=1
printf $$ > "$PIDFILE"
test -n "$killed" && sleep 2
cd htdocs/welt1/daemons
run(){
test -f "$PIDFILE" || exit 2
sleep 1
if test ! -S "$BASEDIR/tmp/mysql.sock";then
echo 'MySQL is not running.'
return
fi
# start PHP, run build queues, attacks, etc
env -i LD_LIBRARY_PATH="$BASEDIR/lib" "$BASEDIR/php/php" event.php &
pid=$!
# check if we still should run (if we have not been killed)
while $running;do
# is PHP not running anymore? Restart it
if ! kill -0 $pid 2>/dev/null >/dev/null;then
run
return
fi
# and wait a second as we do not have to check realtime
sleep 1
done
# kill PHP
kill -15 $pid 2>/dev/null >/dev/null
}
run
detect_pid=`cat "$PIDFILE"`
test "$detect_pid" = $$ && rm -f "$PIDFILE"

Nun dachte ich mir, warum nicht das selbe nochmal unten anhängen und im unteren teil statt
cd htdocs/welt1/daemons
würde ich
cd htdocs/welt2/daemons
schreiben

Also so :

Quote:#!/bin/sh
# Copyright 2010 Lekensteyn
# This script is public domain and comes with NO WARRANTY of any kind
#
# Events handler (handles build queue, attacks, etc)
if test `id -u` -eq 0;then
sudo -u nobody -- "$0"
exit
fi
running=true
trap 'running=false' 1 2 3 15
cd "$(dirname "$0")/.."
BASEDIR="`pwd`"
PIDFILE="$BASEDIR/tmp/event.pid"
killed=
# if a pidfile still exist (unclean shutdown), kill that pid and wait
# 2 seconds for it to catch our signal
test -f "$PIDFILE" && kill -15 "`cat "$PIDFILE"`" >/dev/null && killed=1
printf $$ > "$PIDFILE"
test -n "$killed" && sleep 2
cd htdocs/welt1/daemons
run(){
test -f "$PIDFILE" || exit 2
sleep 1
if test ! -S "$BASEDIR/tmp/mysql.sock";then
echo 'MySQL is not running.'
return
fi
# start PHP, run build queues, attacks, etc
env -i LD_LIBRARY_PATH="$BASEDIR/lib" "$BASEDIR/php/php" event.php &
pid=$!
# check if we still should run (if we have not been killed)
while $running;do
# is PHP not running anymore? Restart it
if ! kill -0 $pid 2>/dev/null >/dev/null;then
run
return
fi
# and wait a second as we do not have to check realtime
sleep 1
done
# kill PHP
kill -15 $pid 2>/dev/null >/dev/null
}
run
detect_pid=`cat "$PIDFILE"`
test "$detect_pid" = $$ && rm -f "$PIDFILE"

#!/bin/sh
# Copyright 2010 Lekensteyn
# This script is public domain and comes with NO WARRANTY of any kind
#
# Events handler (handles build queue, attacks, etc)
if test `id -u` -eq 0;then
sudo -u nobody -- "$0"
exit
fi
running=true
trap 'running=false' 1 2 3 15
cd "$(dirname "$0")/.."
BASEDIR="`pwd`"
PIDFILE="$BASEDIR/tmp/event.pid"
killed=
# if a pidfile still exist (unclean shutdown), kill that pid and wait
# 2 seconds for it to catch our signal
test -f "$PIDFILE" && kill -15 "`cat "$PIDFILE"`" >/dev/null && killed=1
printf $$ > "$PIDFILE"
test -n "$killed" && sleep 2
cd htdocs/welt2/daemons
run(){
test -f "$PIDFILE" || exit 2
sleep 1
if test ! -S "$BASEDIR/tmp/mysql.sock";then
echo 'MySQL is not running.'
return
fi
# start PHP, run build queues, attacks, etc
env -i LD_LIBRARY_PATH="$BASEDIR/lib" "$BASEDIR/php/php" event.php &
pid=$!
# check if we still should run (if we have not been killed)
while $running;do
# is PHP not running anymore? Restart it
if ! kill -0 $pid 2>/dev/null >/dev/null;then
run
return
fi
# and wait a second as we do not have to check realtime
sleep 1
done
# kill PHP
kill -15 $pid 2>/dev/null >/dev/null
}
run
detect_pid=`cat "$PIDFILE"`
test "$detect_pid" = $$ && rm -f "$PIDFILE"

Dies hat auch geklappt !
ABER es klappt nur solange beide welten in
htdocs/welt1/include/config.php
und
htdocs/welt2/include/config.php
auf die selbe Datenbank zugreifen. (z.B. lan-w1)

Wenn ich aber htdocs/welt2/include/config.php die Datenbank in lan-w2 umschreibe (die auch exestiert und alles fuktioniert ect.) , werden die events (angriffe ect.) nicht berechnet.

somit wird dann nur welt 1 berechnet und nicht mehr welt 2.

Wie kann ich nun beide Welten eine unterschiedliche Datenbank geben und auf beiden Welten die events auch berechnet lassen?

MfG
Crusher
Kannst du mal testen, ob es funktioniert, wenn du nur eine Welt am laufen hast, aber sie auf eine andere Datenbank als "lan" einstellst?

LG
Molt
Ja das läuft. (Eben getestet)
Aber ich möchte ja auch 2 Welten Smile
Jo schon klar, aber wenn das nicht funktioniert hätte, hätten auch 2 welten nicht gefunzt...
Aber so fällt mir nix dazu ein, sorry.

LG
Molt
(16.03.2011, 15:12)Molt Wrote: [ -> ]Jo schon klar, aber wenn das nicht funktioniert hätte, hätten auch 2 welten nicht gefunzt...
Aber so fällt mir nix dazu ein, sorry.

LG
Molt

schade...

Kann mir wer anders helfen?
Ist hier nicht irgendeiner der sich mit diesen Linux Events auskennt? Big Grin

MfG
Lekensteyn
You should change the location of the PIDFILE of the events handler:
Code:
PIDFILE="$BASEDIR/tmp/event.pid"
When changing this file, make sure the directory is writable.
Dieser Tipp von Lekensteyn funktioniert so nicht. Ich unterhalte mich mit Lekensteyn über PN weiter bis wir/ich die Lösung habe.

Das Resultat wir natürlich hier geposted.


MfG
Crusher
This should work now, all you have to do is specify multiple worlds in the worlds variable. It runs daemons in htdocs/*/daemons where * is a folder specified by you.
You can overwrite your current event.sh.
I've not tested it though but there are no syntax errors.

http://pastebin.com/RLjy4PCD
Direct download: http://pastebin.com/raw.php?i=RLjy4PCD
FUNKTIONIERT ! Smile
Es funkltioniert, ja

aber nicht gut

Er berechnet ständig daten falsch, zB man rekrutiert 200 sperrträger und hat auf einmal 10.000

Lekensteyn, pls help me

it works, but with very much errors!

Sorry for bad english!
For me it works without errors and well...
dann hilf mir bitte steffen

seit wann hast du linux?