Script
Forum rules
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Jag kör med scriptet, den startar upp deamon:en dock så verkar den aldrig "köra klart", vet inte om det är ett problem med scriptet eller deamon-implementationen i SK. Någon annan som kan sprida lite ljus i frågan?
Code: Select all
#!/bin/sh
### BEGIN INIT INFO
# Provides: switchking
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop Switch King
# Description: Switch King init script. This script starts and stops Switch King daemon.
### END INIT INFO
set -e
export MONO_LOG_LEVEL=info
export MONO_LOG_MASK="dll,config"
# Must be a valid filename
NAME=switchking
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/bin/mono
DAEMON_OPTS="/usr/local/switchking/bin/SwitchKing.exe daemon 192.168.69.5 8080 192.168.69.5 8800"
case "$1" in
start)
echo -n "Starting daemon: "$NAME
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
stop)
echo -n "Stopping daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
echo "."
;;
restart)
echo -n "Restarting daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
*)
echo "Usage: "$1" {start|stop|restart}"
exit 1
esac
exit 0
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
hrm sekunderna efter jag postade hittade jag detta felmeddelande:
Verkar som jag får googla lite på Required-Start, som vad jag förstår är en rad med de services som måste vara startade innan detta script ska köras, korrekt?
Code: Select all
Unhandled Exception: SwitchKing.Server.BusinessAccess.PlatformStore.PlatformStateException: Failed to turn off device. Error: Could not connect to the Telldus Service
at SwitchKing.Server.BusinessAccess.Invocation.Engines.InvocationEngine.TurnOff (SwitchKing.Common.Entities.Device d) [0x00000] in <filename unknown>:0
at SwitchKing.Server.BusinessAccess.Invocation.Engines.InvocationEngine.PerformAction (DeviceActionEntry entry) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: SwitchKing.Server.BusinessAccess.PlatformStore.PlatformStateException: Failed to turn off device. Error: Could not connect to the Telldus Service
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Efter lite trixande i hockeypauserna så lärde jag mig lite om hur det fungerar med startup-script i Linux.
Allt detta gäller Ubuntu 10.04 men som jag förstår det ska det även fungera i nyare versioner av Ubuntu.
Om någon mer har samma problem som mig och får felmeddelandet ovan i "/var/log/boot.log" och har registrerat scriptet med "update-rc.d switchking default" så behöver två saker göras.
1. Ta reda på vilken runlevel din maskin bootas upp med och det gör man genom att titta i filen "/etc/init/rc-sysinit.conf", för mig står det "env DEFAULT_RUNLEVEL=2".
2. Kontrollera ordningen switchking och telldusd startas i genom att titta i mappen "/etc/rc2.d/" (där 2:an är siffran som står efter "DEFAULT_RUNLEVEL=", alla filer (symlänkar) i den mappen som börjar med S körs i bokstavsordning, för mig så började både telldusd och switchking på S20 vilket gjorde att switchking startades före telldusd. Löste detta genom att köra kommandot "sudo mv /etc/rc2.d/S20switchking /etc/rc2.d/S30switchking" och sedan boota om maskinen.
Dock så tror jag fortfarande att något är galet med daemon-läget i SK då det inte skrivs något mer i loggen efter "REST Service Running" och jag har saker med högre nummer än S30 och som jag tycker borde skriva ngt i loggen.
Allt detta gäller Ubuntu 10.04 men som jag förstår det ska det även fungera i nyare versioner av Ubuntu.
Om någon mer har samma problem som mig och får felmeddelandet ovan i "/var/log/boot.log" och har registrerat scriptet med "update-rc.d switchking default" så behöver två saker göras.
1. Ta reda på vilken runlevel din maskin bootas upp med och det gör man genom att titta i filen "/etc/init/rc-sysinit.conf", för mig står det "env DEFAULT_RUNLEVEL=2".
2. Kontrollera ordningen switchking och telldusd startas i genom att titta i mappen "/etc/rc2.d/" (där 2:an är siffran som står efter "DEFAULT_RUNLEVEL=", alla filer (symlänkar) i den mappen som börjar med S körs i bokstavsordning, för mig så började både telldusd och switchking på S20 vilket gjorde att switchking startades före telldusd. Löste detta genom att köra kommandot "sudo mv /etc/rc2.d/S20switchking /etc/rc2.d/S30switchking" och sedan boota om maskinen.
Dock så tror jag fortfarande att något är galet med daemon-läget i SK då det inte skrivs något mer i loggen efter "REST Service Running" och jag har saker med högre nummer än S30 och som jag tycker borde skriva ngt i loggen.
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Efter lite mer tweakande så hittade jag "mono-service2" vilket gör att den inte blockerar efterföljande service från att starta upp.
Code: Select all
DAEMON=/usr/bin/mono-service2
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Logga in på Ubuntu och skriv:
Klistra in koden:
Kör följande två kommandon för att registrera scriptet som ett init-script.
Starta om burken!
Om switchking inte startat upp kör följande kommando och leta efter felmeddelanden.
Code: Select all
sudo nano /etc/init.d/switchking
Code: Select all
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON_NAME=SwitchKing
DAEMON_PATH=/usr/local/switchking/bin/$DAEMON_NAME.exe
DAEMON_ARGS="daemon 192.168.69.5 8080 192.168.69.5 8800"
LOCKFILE=/tmp/$DAEMON_NAME.exe.lock
PIDFILE=/tmp/$DAEMON_NAME.exe.pid
start()
{
echo -n "Starting daemon: "
if [ -a $LOCKFILE ]; then
PID=`cat $LOCKFILE`
echo Daemon already running: $PID
exit 2;
else
mono-service2 -l:$LOCKFILE $DAEMON_PATH $DAEMON_ARGS
while [ ! -f $LOCKFILE ]
do
sleep 1
echo "Waiting for lock file creation"
done
cat $LOCKFILE > $PIDFILE
echo "started."
exit 0;
fi
}
stop()
{
echo -n "Stopping daemon: "
if [ -f $LOCKFILE ]; then
kill `cat $PIDFILE`
# Sometimes the mono-service2 does not die properly
# To avoid a zombie process we make sure it is dead
kill -9 `cat $PIDFILE`
sleep 2
if [ -f $LOCKFILE ]; then
rm $LOCKFILE
fi
echo "Stopped."
exit 0;
else
echo "Daemon is not running"
exit 2;
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
Code: Select all
sudo chmod +x /etc/init.d/switchking
Code: Select all
sudo update-rc.d switchking defaults 40
Om switchking inte startat upp kör följande kommando och leta efter felmeddelanden.
Code: Select all
cat /var/log/boot.log
Last edited by nilzen on Mon 05 Dec 2011, 15:14, edited 3 times in total.
-
- Administrator
- Posts: 2655
- Joined: Tue 09 Nov 2010, 20:25
Re: Script
Har tidigare läst på lite om monoservice2 men faktiskt inte fattat hur det ska fungera...
Martin | Switch King
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Du kan gärna städa bort alla poster förutom den senaste så jag inte sprider vilseledande information till någon användare... Verkar som sagt fungera riktigt bra med scriptet ovan, även SwitchKing verkar rulla på bra på Ubuntu 10.04!
-
- 3 stars
- Posts: 181
- Joined: Tue 09 Nov 2010, 21:51
Re: Script
Ny här i beta delen av forumet...
Men ett tips är att redan i
lägga till vilken ordning sakerna ska startas upp, genom att lägga till siffran 30 (eller högre om så behövs)
(Telldus-core startas som 20 i min installation, OWFS ligger redan på 30, så själv lägger jag 40)
Är det så att man redan har lagt till, så kan man köra en
först och sedan lägga till i rätt ordning...
Men ett tips är att redan i
Code: Select all
sudo update-rc.d switchking defaults
Code: Select all
sudo update-rc.d switchking defaults 30
Är det så att man redan har lagt till, så kan man köra en
Code: Select all
sudo update-rc.d switchking remove
-
- 2 stars
- Posts: 49
- Joined: Sat 26 Nov 2011, 19:27
Re: Script
Mitt första init-script någonsin så jag tackar och bockar för tipset!
Who is online
Users browsing this forum: No registered users and 9 guests