Inhaltsverzeichnis

SignalK

Installation

Installation auf einem Raspberry mit Devuan, d.h. es wird SysV-Init benutzt. Voraussetzung ist ein Minimalsystem.

apt-get install nodejs npm
npm install -g signalk-server

Optional

apt-get install avahi-daemon

Die installierten Node-Module liegen unter /usr/local/lib/node_modules.

:!: signalk-server-setup nicht verwenden

Starten unter Devuan / SysV-Init:

/etc/default/signalk
# Default settings for signalk-server
#
USER=devuan
GROUP=devuan
/etc/init.d/signalk
#!/bin/sh
### BEGIN INIT INFO
# Provides:          signalk
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SignalK marine data server
# Description:       SignalK
#                    Marine Data Server
### END INIT INFO
 
# Do NOT "set -e"
 
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Marine Data Server"
NAME=signalk
DAEMON=/usr/local/bin/signalk-server
PIDFILE=/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
USER=signalk
GROUP=signalk
 
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
 
# Read configuration variable file if it is present
[ -r /etc/default/signalk ] && . /etc/default/signalk
DAEMON_ARGS="-c /home/$USER/.signalk"
 
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
 
# Define LSB log_* functions.
. /lib/lsb/init-functions
 
do_start()
{
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
		|| return 1
	start-stop-daemon --start --quiet --pidfile $PIDFILE -m --chuid $USER:$GROUP -b --exec $DAEMON -- \
		$DAEMON_ARGS \
		|| return 2
}
 
do_stop()
{
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name node
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	rm -f $PIDFILE
	return "$RETVAL"
}
 
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
	;;
    status)
       status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
       ;;
    restart|force-reload)
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	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
	;;
    *)
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
	exit 3
	;;
esac
 
exit 0

Starten

Gestartet wird SignalK unter einem normalen Benutzer. Die Konfiguration wird im Verzeichnis ~/.signalk abgelegt.

Am besten für die ersten Versuche einfach direkt starten

$ signalk-server

Anschließend über die GUI/Browser auf die Security-Seite gehen und den ersten administrativen Benutzer anlegen. Anschließend den Server mit CTRL-C beenden und direkt wieder neu starten. Mit dem zuvor angelegten Benutzer anmelden.

Hinweise

Der laufende Signalk-Server meldet sich im Netzwerk über Avahi. Ein Client kann so z.B. mit Python und Zeroconf den Server finden.