summaryrefslogtreecommitdiffstats
path: root/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
diff options
context:
space:
mode:
authorChristian Rößler2018-07-25 16:08:45 +0200
committerChristian Rößler2018-07-25 16:08:45 +0200
commitb21d2bb616a2b0ecd641707a783b84903d97ce36 (patch)
tree334bf771b738b60b0678fe35f42bf61e7922d05c /core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
parent[dhcpc-busybox] Also add special primary handling to systemd-udhcpc (diff)
downloadmltk-b21d2bb616a2b0ecd641707a783b84903d97ce36.tar.gz
mltk-b21d2bb616a2b0ecd641707a783b84903d97ce36.tar.xz
mltk-b21d2bb616a2b0ecd641707a783b84903d97ce36.zip
[run-virt] linux scripts extended (minimised, user etc). TO BE TESTED!
Diffstat (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux')
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc5
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc31
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/20_get_creds.inc2
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc50
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/60_resolution.inc77
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/90_runscript.inc69
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/mnt_shares9
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx38
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution25
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer60
10 files changed, 288 insertions, 78 deletions
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
index e8e0ae91..939becf6 100644
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
@@ -24,6 +24,11 @@ GLOBALUSER=$(echo "$GLOBALDOMAINUSER" | cut -d '\' -f 2)
REMAPMODE=$(grep '^remapMode=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
CREATEMISSING=$(grep '^createMissingRemap=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
+SCRIPTUSER=$(grep '^scriptUser=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
+SCRIPTVISIBILITY=$(grep '^scriptVisibility=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
+SCRIPTEXT=$(grep scriptExt "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=")
+
+
# CIFSVERSIONS="3.11 3.0 2.1 2.0 1.0"
CIFSVERSIONS="3.0 2.1 1.0 3.11 2.0"
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
index d6fd7caa..38213e86 100644
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
@@ -1,5 +1,7 @@
### Funktionen ####################################
+### Funktionen Mounter ############################
+
function xor()
{ local RES=($(echo "$1" | sed "s/../0x& /g"))
shift 1
@@ -112,5 +114,34 @@ function mount_share()
fi
}
+### Funktionen Mounter Ende #######################
+
+### Funktionen resolution #########################
+
+get_xauthfile()
+{
+ # Das ist mitunter ein Problem, da die richtige xauth zu finden - Distroabhängig!
+ for wartezeit in 1 2 3 5 10 10 0 ende; do
+ [ "$wartezeit" = "ende" ] && { logger "openslx resolution utility: XAUTHFILE not found. Exiting."; exit 1; }
+ XAUTHORITY=$(ps aux | grep -o "root.*X.* \-auth *[^ ]*" | awk '{print $NF}')
+ [ -n "${XAUTHORITY}" ] && break
+ sleep $wartezeit
+ done
+ logger "openslx resolution utility: XAUTHFILE found."
+}
+
+
+check_resolution() {
+ ACTRES=$(DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr|grep '*'|tr -s " "|cut -f 2 -d " ")
+ if [ "$ACTRES" != "$RESOLUTION" ]; then
+ logger "openslx resolution utility: resolution changed; re-changing."
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --output ${AUSGABE} --mode ${RESOLUTION}
+ else
+ logger "openslx resolution utility: resolution unchanged."
+ fi
+}
+
+### Funktionen resolution Ende ####################
+
### Funktionen Ende ###############################
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/20_get_creds.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/20_get_creds.inc
index c6f6ffcb..f0081658 100644
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/20_get_creds.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/20_get_creds.inc
@@ -10,7 +10,7 @@ function get_creds()
# Serverantwort pwdaemon in temp. Datei schreiben:
timeout 2s dd bs=$BYTES count=1 of="$RAWKEYTEMP" <&13 2>/dev/null
-
+
# Kanal zu Socket schließen:
exec 13<&-
exec 13>&-
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
index cc71f23c..7447dd41 100644
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
@@ -39,3 +39,53 @@ function mount_shares()
fi
done
}
+
+mnt_shares() {
+ logger "openslx sharemapper: Started."
+
+ # Wait for network connection to base system
+ x=1
+ while ! ping -w 1 -c 1 "${NATADDR}" 2>/dev/null 1>&2; do
+ [ "$x" -gt 20 ] && { logger "openslx sharemapper: could not reach base system. Giving up."; exit 1; }
+ let x=x+1
+ sleep 2
+ done
+
+ logger "openslx sharemapper: base system reaching; commencing."
+
+ # REMAPMODE (remapMode): 0: None, 1 Native, 2 Native Fallback, 3 vmware
+ # CREATEMISSING (createMissingRemap): 0: Nichts tun, 1 xdg-Verzeichnisse
+
+ case "$REMAPMODE" in
+ 0) logger "openslx sharemapper: remapMode 0 (do nothing) detected."
+ ;;
+ 1) logger "openslx sharemapper: remapMode 1 (native mode) detected."
+ preliminaries_native
+ get_creds # fills global var PW with (currently) decrypted password
+ get_shares # fills array ROHSHARES; row 0 global infos from (shares-)CONFIGFILE,
+ # following rows: column 1 share path, col 2 drive letter, col 3 share name,
+ # column 4 username, col 5 password.
+ mount_shares # mounts shares given in array ROHSHARES.
+ ;;
+ 2) logger "openslx sharemapper: remapMode 2 (fallback mode) detected."
+ preliminaries_native
+ get_creds # fills global var PW with (currently) decrypted password
+ get_shares # fills array ROHSHARES; row 0 global infos from (shares-)CONFIGFILE,
+ # following rows: column 1 share path, col 2 drive letter, col 3 share name,
+ # column 4 username, col 5 password.
+ mount_shares # mounts shares given in array ROHSHARES.
+ check_fallback # checks for a mounted home and fallbacks to vmware share, if none found.
+ ;;
+ 3) logger "openslx sharemapper: remapMode 3 (vmware mode) detected."
+ preliminaries_vmware
+ mount_shares # mounts shares given in array ROHSHARES - runvirt checks whether there's
+ # a home share given or not..
+ ;;
+ *) logger "openslx sharemapper: unknown remapMode in $SLXCONFIGFILE; doing nothing."
+ ;;
+ esac
+
+ # By the way: We also have to start a bwLehrpool-Suite given script (runscript). For convenience we will start it here and
+ # after mounting shares, as perhaps a given script needs mounted shares.
+ exit 0
+}
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/60_resolution.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/60_resolution.inc
new file mode 100644
index 00000000..55f24407
--- /dev/null
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/60_resolution.inc
@@ -0,0 +1,77 @@
+set_resolution()
+{
+ DISPLAY="${1}.0"
+ logger "openslx resolution utility started."
+
+ # Da nun fremdgemountet wird, hier sicherheitshalber zur Kontrolle wg. Gross-/Kleinschreibung:
+ SLXCONFIGFILE=$(find "${DISKMOUNTDIR}" -iwholename "${SLXCONFIGFILE}")
+
+ if [ -f "$SLXCONFIGFILE" ]; then
+ RESOLUTION=$(grep 'resolution=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
+ if [ -z $RESOLUTION ]; then
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE seems to be empty!"
+ exit 1
+ fi
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE yields ${RESOLUTION}."
+ else
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE not found!"
+ exit 1
+ fi
+
+ # Das ist mitunter ein Problem, da die richtige zu finden - Distroabhängig!
+ # Hier ein Beispiel für openSuse 13.2, sollte auch für Debian, Ubuntu, Redhat usw. laufen:.
+ # XAUTHDATEI=$(ps aux | grep -o "root.*X.* \-auth *[^ ]*" | awk '{print $NF}')
+ get_xauthfile
+
+ # Zu verbessern: Der Name des Verbundenen ist nicht immer bekannt. Daher nehmen wir das
+ # erste 'connected' in der Ausgabe xrandrs Und warten evtl. ein Weilchen)::
+ for wartezeit in 1 1 1 2 0 ende; do
+ [ "$wartezeit" = "ende" ] && { logger "openslx resolution utility: Could not detect output device. Exiting." ; exit 1; }
+ AUSGABE=$(DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr -q|grep -m 1 " connected "|awk '{print $1}')
+ [ -n "$AUSGABE" ] && break
+ sleep $wartezeit
+ done
+
+ # Pruefen, ob xrand eine passende modeline ausgibt:
+ if [ "$(DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} xrandr | grep -c ${RESOLUTION}[[:space:]])" -eq 0 ]; then
+ logger "openslx resolution utility: xrandr yields no fitting modeline; adding one."
+ MODELINE=$(cvt ${RESOLUTION//x/ } | grep -v "^#" | sed "s/Modeline //g" | sed 's/"//g')
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --newmode $(echo ${MODELINE})
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --addmode ${AUSGABE} $(echo ${MODELINE} | cut -d " " -f 1)
+ # Dann einzusteuernde Auflösung natürlich auf die neue ändern:
+ RESOLUTION=$(echo ${MODELINE} | cut -d " " -f 1)
+ logger "openslx resolution utility: (xrandr) modeline ${MODELINE} added (${RESOLUTION})."
+ fi
+
+ # Auflösung per xrandr setzen:
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --output ${AUSGABE} --mode ${RESOLUTION}
+ ERR=$?
+ if [ $ERR -ne 0 ]; then
+ logger "openslx resolution utility: xrandr error code ${ERR}."
+ else
+ logger "openslx resolution utility: xrandr ok. Mode $RESOLUTION set."
+ fi
+
+ # Das hier ist ein wenig problematisch, da nach X-Start die gewünschte Desktopumgebung
+ # diese gern zuvor gespeicherte Auflösungen wieder einspielt. Daher warten wir einfach,
+ # und prüfen in gewissen Zeitabständen, ob sich die Auflösung geändert hat, und spielen
+ # im Änderungsfalle die Grundsystemauflösung wieder ein. Schön ist das nicht.
+
+ # Now, let's wait some seconds to see if another process re-changes res.:
+ sleep 5
+ check_resolution
+
+ # Now, let's wait some more seconds to see if another process re-changes res.:
+ sleep 15
+ check_resolution
+
+ # Now, let's wait even more seconds to see if another process re-changes res.:
+ sleep 20
+ check_resolution
+
+ # Now, let's wait even more seconds to see if another process re-changes res.:
+ sleep 40
+ check_resolution
+
+ exit 0
+}
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/90_runscript.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/90_runscript.inc
index e5a7971b..f5ef0223 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/90_runscript.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/90_runscript.inc
@@ -1,20 +1,65 @@
function runscript()
{
- logger "openslx sharemapper: runscript: looking for a script to run..."
- if [ -f "$DISKMOUNTDIR/openslx.ini" ]; then
- EXTENSION=$(grep scriptExt "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=")
- [ -z "$EXTENSION" -o "$EXTENSION" = "bat" ] && \
- logger "openslx sharemapper: runscript: Script extension empty or \'bat\', trying anyway."
- if [ -f "$DISKMOUNTDIR/runscript${EXTENSION}" ]; then
- su -c "$DISKMOUNTDIR/runscript${EXTENSION}" "$LOCALUSER"
- ERR=$?
- if [ $ERR -eq 0 ]; then
- logger "openslx sharemapper: runscript: runscript${EXTENSION} ok, errorlevel ${ERR}."
+ logger "openslx: runscript: looking for a script to run..."
+ ERR=0
+ if [ -f "$SLXCONFIGFILE" ]; then
+ [ -z "$SCRIPTEXT" -o "$SCRIPTEXT" = "bat" ] && \
+ logger "openslx utility: runscript: Script extension empty or \'bat\', trying anyway."
+ if [ -f "$DISKMOUNTDIR/runscript${SCRIPTEXT}" ]; then
+ logger "openslx utility: runscript: found script $DISKMOUNTDIR/runscript${SCRIPTEXT}."
+
+ case "$SCRIPTUSER" in
+ 0) USERPART=""
+ ;;
+ 1) USERPART=" su -c - $LOCALUSER "
+ ;;
+ *) logger "openslx utility: runscript: Unknown script user or script user not set. Running as root."
+ USERPART=""
+ ;;
+ esac
+
+ case "$SCRIPTVISIBILITY" in
+ 0) # 0=hidden
+ logger "openslx utility: runscript: Starting script hidden."
+ echo "$USERPART $DISKMOUNTDIR/runscript${SCRIPTEXT}"
+ $USERPART "$DISKMOUNTDIR/runscript${SCRIPTEXT}" &
+ ;;
+ 1) # 1=normal
+ logger "openslx utility: runscript: Starting script maximised."
+ get_xauthfile
+ DISPLAY=:0.0 XAUTHORITY="${XAUTHORITY}" $USERPART xterm "$DISKMOUNTDIR/runscript${SCRIPTEXT}" &
+ ;;
+ 2) # 2=minimized (xterm -iconic)
+ logger "openslx utility: runscript: starting script minimised."
+ get_xauthfile
+
+ # warte auf Window manager...
+ while [[ "$(DISPLAY=:0.0 XAUTHORITY=${XAUTHORITY} xprop -root _NET_SUPPORTING_WM_CHECK)" =~ "no such atom" ]]; do
+ sleep 2
+ done
+
+ # Truly not the best way to wait until the desktop environment is ready, but there's no common way to
+ # check for DE readyness. Until then, we'll sleep.
+ sleep 20
+
+ DISPLAY=:0.0 XAUTHORITY="${XAUTHORITY}" $USERPART xterm -iconic "$DISKMOUNTDIR/runscript${SCRIPTEXT}" &
+ ;;
+ *) # *=?
+ logger "openslx utility: runscript: unkown scriptVisibility $SCRIPTVISIBILITY."
+ ;;
+ esac
+
+ if [ "$ERR" -eq 0 ]; then
+ logger "openslx utility: runscript: runscript${SCRIPTEXT} ok, errorlevel ${ERR}."
else
- logger "openslx sharemapper: runscript: Script error ${ERR}."
+ logger "openslx utility: runscript: Script error ${ERR}."
fi
+ else
+ logger "openslx utility: runscript: script $DISKMOUNTDIR/runscript${SCRIPTEXT} not found."
fi
else
- logger "openslx sharemapper: runscript: Could not find $DISKMOUNTDIR/openslx.ini for script extension."
+ logger "openslx utility: runscript: Could not find $SLXCONFIGFILE."
+ exit 1
fi
}
+
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/mnt_shares b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/mnt_shares
index d5485d1a..5c89295b 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/mnt_shares
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/mnt_shares
@@ -10,8 +10,6 @@ for i in "$(dirname $0)"/includes/*.inc; do
done
# Wait for network connection to base system
-#!/bin/bash
-
x=1
while ! ping -w 1 -c 1 "${NATADDR}" 2>/dev/null 1>&2; do
[ "$x" -gt 20 ] && { logger "openslx sharemapper: could not reach base system. Giving up."; exit 1; }
@@ -26,7 +24,6 @@ logger "openslx sharemapper: base system reaching; commencing."
case "$REMAPMODE" in
0) logger "openslx sharemapper: remapMode 0 (do nothing) detected."
- exit 0
;;
1) logger "openslx sharemapper: remapMode 1 (native mode) detected."
preliminaries_native
@@ -35,7 +32,6 @@ case "$REMAPMODE" in
# following rows: column 1 share path, col 2 drive letter, col 3 share name,
# column 4 username, col 5 password.
mount_shares # mounts shares given in array ROHSHARES.
- exit 0
;;
2) logger "openslx sharemapper: remapMode 2 (fallback mode) detected."
preliminaries_native
@@ -45,16 +41,13 @@ case "$REMAPMODE" in
# column 4 username, col 5 password.
mount_shares # mounts shares given in array ROHSHARES.
check_fallback # checks for a mounted home and fallbacks to vmware share, if none found.
- exit 0
;;
3) logger "openslx sharemapper: remapMode 3 (vmware mode) detected."
preliminaries_vmware
mount_shares # mounts shares given in array ROHSHARES - runvirt checks whether there's
# a home share given or not..
- exit 0
;;
- *) logger "openslx sharemapper: unknown remapMode in $SLXCONFIGFILE; doing nothing end exiting with error."
- exit 1
+ *) logger "openslx sharemapper: unknown remapMode in $SLXCONFIGFILE; doing nothing."
;;
esac
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx
new file mode 100755
index 00000000..8e08f44e
--- /dev/null
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# set -x
+
+logger "openslx utility script: Started."
+
+OWNDIR=$(dirname $0)
+for i in "$(dirname $0)"/includes/*.inc; do
+ source "$i"
+done
+
+logger "openslx utility script: spawning resolution script for X displays..."
+OLDPWD=$(pwd)
+i=0
+
+# detecting running X instances:
+cd /tmp/.X11-unix && for x in X*; do
+ set_resolution ":${x#X}" &
+ RESPID[i]=$!
+ logger "openslx utility script: spawned resolution script for :${x#X}."
+ let "i++"
+ done
+cd "$OLDPWD"
+
+logger "openslx utility script: spawning share mounter..."
+mnt_shares &
+MNTPID=$!
+
+logger "openslx utility script: Waiting for mounter..."
+# Best to wait until any shares are mounted (and perhaps resolution setting, too?), as perhaps
+# an user supplied runscript needs a network share?
+wait $MNTPID # ${RSPID[*]}
+logger "openslx utility script: mounter finished."
+
+
+logger "openslx utility script: starting runscript..."
+runscript
+logger "openslx utility script: runscript finished."
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
index c22bcf80..162f4d08 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
@@ -7,35 +7,22 @@
# Zu erledigen: Jede Menge, zB anständiges Trapping, Fehler abfangen usw...
# set -x
-MOUNTDIR=/mnt/diskmount
-RESFILE="${MOUNTDIR}"/openslx.ini
DISPLAY=:0.0
-check_resolution() {
- # Now, let's wait even more seconds to see if another process re-changes res.:
- ACTRES=$(DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr|grep '*'|tr -s " "|cut -f 2 -d " ")
- if [ "$ACTRES" != "$RESOLUTION" ]; then
- logger "openslx resolution utility: resolution changed; re-changing."
- DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --output ${AUSGABE} --mode ${RESOLUTION}
- else
- logger "openslx resolution utility: resolution unchanged."
- fi
-}
-
logger "openslx resolution utility started."
# Da nun fremdgemountet wird, hier sicherheitshalber zur Kontrolle wg. Gross-/Kleinschreibung:
-RESFILE=$(find "${MOUNTDIR}" -iwholename "${RESFILE}")
+SLXCONFIGFILE=$(find "${DISKMOUNTDIR}" -iwholename "${SLXCONFIGFILE}")
-if [ -f "$RESFILE" ]; then
- RESOLUTION=$(grep 'resolution=' "$RESFILE" | cut -d '=' -f 2)
+if [ -f "$SLXCONFIGFILE" ]; then
+ RESOLUTION=$(grep 'resolution=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
if [ -z $RESOLUTION ]; then
- logger "openslx resolution utility: resolution file $RESFILE seems to be empty!"
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE seems to be empty!"
exit 1
fi
- logger "openslx resolution utility: resolution file $RESFILE yields ${RESOLUTION}."
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE yields ${RESOLUTION}."
else
- logger "openslx resolution utility: resolution file $RESFILE not found!"
+ logger "openslx resolution utility: resolution file $SLXCONFIGFILE not found!"
exit 1
fi
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
index 5e0677a9..ba43b6f6 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
@@ -8,10 +8,10 @@ LOGGER=$(which logger)
MKDIR=$(which mkdir)
MOUNT=$(which mount)
MOUNTDIR=/mnt/diskmount/
-SERVICEMOUNT=openslx-mount.service
+SERVICEUTIL=openslx-utility.service
SERVICEUMOUNT=openslx-umount.service
-SERVICERESOLUTION=openslx-resolution.service
-SERVICEDISKMOUNT=$(echo "$MOUNTDIR" |tr / -|sed 's:^-::;s:-$::').mount # mounter needs to be named like that, or else.
+SERVICEDISKMOUNT=$(echo "$MOUNTDIR" |tr / -|sed 's:^-::;s:-$::').mount # mounter needs to be named like that... or else!
+TARGET=$(systemctl get-default)
# systemd erkennen
@@ -41,7 +41,7 @@ case $(${PS} --pid 1 -o comm h) in
unlink "${SERVICEDIR}/basic.target.wants/${SERVICERESOLUTION}" 2>/dev/null
fi
- echo "openslx praeinstaller: installing systemd service (disk mounter) to ${SERVICEDIR}/${SERVICEDISKMOUNT}."
+ echo "openslx praeinstaller: installing systemd service (floppy disk mounter) to ${SERVICEDIR}/${SERVICEDISKMOUNT}."
cat <<-HEREDOC > "$SERVICEDIR"/"$SERVICEDISKMOUNT"
[Unit]
Description=Mount pseudofloppy fd1
@@ -53,60 +53,44 @@ case $(${PS} --pid 1 -o comm h) in
Options=defaults
HEREDOC
- echo "openslx praeinstaller: installing systemd service (mounter) to ${SERVICEDIR}/${SERVICEMOUNT}."
- cat <<-HEREDOC > "$SERVICEDIR"/"$SERVICEMOUNT"
- [Unit]
- Description=openSLX share mounter
- After=basic.target
+
+ echo "openslx praeinstaller: installing systemd service (openslx utility script) to ${SERVICEDIR}/${SERVICEUTIL}."
+ cat <<-HEREDOC > "${SERVICEDIR}"/"${SERVICEUTIL}"
+ [Unit]
+ Description=openslx utility script
+ After=$TARGET
Requires=${SERVICEDISKMOUNT}
[Service]
Type=oneshot
- ExecStart=${LOGGER} "openslx service file: mounter started."
- ExecStart=${MOUNTDIR}/linux/mnt_shares
+ ExecStart=${LOGGER} "openslx utility script: starting."
+ ExecStart=${MOUNTDIR}/linux/openslx
ExecStart=${LOGGER} "openslx service file: done."
RemainAfterExit=yes
HEREDOC
-
+
echo "openslx praeinstaller: installing systemd service (umounter) to ${SERVICEDIR}/${SERVICEUMOUNT}."
cat <<-THEREDOC > "$SERVICEDIR"/"${SERVICEUMOUNT}"
[Unit]
- Description=openSLX resolution utility
+ Description=openSLX umount utility
Before=shutdown.target
Requires=${SERVICEDISKMOUNT}
-
+ DefaultDependencies=no
+
[Service]
Type=oneshot
ExecStart=${LOGGER} "openslx service file: umounter started."
- ExecStart=${MOUNTDIR}/linux/umount
+ ExecStart=${MOUNTDIR}/linux/umnt_shares
ExecStart=${LOGGER} "openslx service file: done."
RemainAfterExit=no
THEREDOC
-
- echo "openslx praeinstaller: installing systemd service (resolution utility) to ${SERVICEDIR}/${SERVICERESOLUTION}."
- cat <<-SOMEWHEREDOC > "$SERVICEDIR"/"${SERVICERESOLUTION}"
- [Unit]
- Description=openSLX resolution utility
- After=display-manager.service
- Requires=${SERVICEDISKMOUNT}
-
- [Service]
- Type=oneshot
- ExecStart=${LOGGER} "openslx service file: resolution utility started."
- ExecStart=${MOUNTDIR}/linux/resolution
- ExecStart=${LOGGER} "openslx service file: done."
- RemainAfterExit=yes
- SOMEWHEREDOC
-
-
- [ ! -d "$SERVICEDIR"/graphical.target.wants ] && mkdir "$SERVICEDIR"/graphical.target.wants 2>/dev/null
- [ ! -d "$SERVICEDIR"/basic.target.wants ] && mkdir "$SERVICEDIR"/basic.target.wants 2>/dev/null
+
+ [ ! -d "$SERVICEDIR"/"${TARGET}".wants ] && mkdir "$SERVICEDIR"/"${TARGET}".wants 2>/dev/null
[ ! -d "$SERVICEDIR"/shutdown.target.wants ] && mkdir "$SERVICEDIR"/shutdown.target.wants 2>/dev/null
-
- ln -s "${SERVICEDIR}"/"${SERVICEMOUNT}" "$SERVICEDIR"/graphical.target.wants/"${SERVICEMOUNT}"
+
+ ln -s "${SERVICEDIR}"/"${SERVICEUTIL}" "$SERVICEDIR"/"${TARGET}".wants/"${SERVICEUTIL}"
ln -s "${SERVICEDIR}"/"${SERVICEUMOUNT}" "$SERVICEDIR"/shutdown.target.wants/"${SERVICEUMOUNT}"
- ln -s "${SERVICEDIR}"/"${SERVICERESOLUTION}" "$SERVICEDIR"/basic.target.wants/"${SERVICERESOLUTION}"
-
+
echo "openslx praeinstaller: doing systemd reload."
systemctl daemon-reload
;;