summaryrefslogtreecommitdiffstats
path: root/satellit_installer
diff options
context:
space:
mode:
authorSimon Rettberg2019-03-25 14:40:04 +0100
committerSimon Rettberg2019-03-25 14:40:04 +0100
commita64e391944b334934ee3b2aec4f243f27baa7c15 (patch)
tree0fa12ec82dd276c5dfee6f71feb52a3e4a6fe643 /satellit_installer
parent[SSPS] slxadmin config: Add bios list.json URL (diff)
downloadsetup-scripts-a64e391944b334934ee3b2aec4f243f27baa7c15.tar.gz
setup-scripts-a64e391944b334934ee3b2aec4f243f27baa7c15.tar.xz
setup-scripts-a64e391944b334934ee3b2aec4f243f27baa7c15.zip
[SS.S] Make bootup slx-admin trigger its own service
Having it as a cron entry makes it impossible to order dependencies, like taskmanager, mariadb, etc.
Diffstat (limited to 'satellit_installer')
-rw-r--r--satellit_installer/includes/90-patch_slxadmin.inc4
-rw-r--r--satellit_installer/static_files/slxadmin-boot.service13
-rwxr-xr-xsatellit_installer/static_files/slxadmin-bootscript11
-rw-r--r--satellit_installer/static_files/slxadmin-crontab1
4 files changed, 28 insertions, 1 deletions
diff --git a/satellit_installer/includes/90-patch_slxadmin.inc b/satellit_installer/includes/90-patch_slxadmin.inc
index c55e367..99f4c16 100644
--- a/satellit_installer/includes/90-patch_slxadmin.inc
+++ b/satellit_installer/includes/90-patch_slxadmin.inc
@@ -25,5 +25,9 @@ patch_slxadmin () {
# Add system cronjob to execute slx-admin cronjob
cp "$BASEDIR/static_files/slxadmin-crontab" "/etc/cron.d/slx-admin" || perror "could not install slxadmin crontab"
cp "$BASEDIR/static_files/slxadmin-cronscript" "/opt/openslx/slxadmin-cronscript" || perror "could not install slxadmin cronscript"
+ # Add script and service to trigger init hook
+ cp "$BASEDIR/static_files/slxadmin-bootscript" "/opt/openslx/slxadmin-bootscript" || perror "could not install slxadmin bootscript"
+ cp "$BASEDIR/static_files/slxadmin-boot.service" "/etc/systemd/system/slxadmin-boot.service" || perror "could not install slxadmin boot service"
+ ln -nfs "../slxadmin-boot.service" "/etc/systemd/system/multi-user.target.wants/slxadmin-boot.service" || perror "Could not enable slxadmin boot service"
}
diff --git a/satellit_installer/static_files/slxadmin-boot.service b/satellit_installer/static_files/slxadmin-boot.service
new file mode 100644
index 0000000..21bdf51
--- /dev/null
+++ b/satellit_installer/static_files/slxadmin-boot.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Trigger init hooks of slx-admin
+RefuseManualStart=yes
+Before=lighttpd.service
+After=mariadb.service mysql.service network.target taskmanager.service
+Wants=network-online.target
+
+[Service]
+Type=oneshot
+ExecStart=/opt/openslx/slxadmin-bootscript
+
+[Install]
+WantedBy=multi-user.target
diff --git a/satellit_installer/static_files/slxadmin-bootscript b/satellit_installer/static_files/slxadmin-bootscript
new file mode 100755
index 0000000..98aafed
--- /dev/null
+++ b/satellit_installer/static_files/slxadmin-bootscript
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+FILE=$(mktemp)
+
+if ! php /srv/openslx/www/slx-admin/api.php init > "$FILE" 2>&1; then
+ php /srv/openslx/www/slx-admin/api.php init --crashreport "$FILE"
+fi
+
+rm -- "$FILE"
+sleep 1
+exit 0
diff --git a/satellit_installer/static_files/slxadmin-crontab b/satellit_installer/static_files/slxadmin-crontab
index ecae4b1..440ac35 100644
--- a/satellit_installer/static_files/slxadmin-crontab
+++ b/satellit_installer/static_files/slxadmin-crontab
@@ -3,6 +3,5 @@
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-@reboot www-data sleep 15 && php /srv/openslx/www/slx-admin/api.php init > /dev/null 2>&1
*/5 * * * * www-data /opt/openslx/slxadmin-cronscript