aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAJ Jordan <alex@strugee.net>2020-12-04 16:08:49 -0800
committerAJ Jordan <alex@strugee.net>2020-12-04 16:33:24 -0800
commitbab389114b5833735d55d982ba1a2c17fd22e0d2 (patch)
treef2a2795109689f8c6cd425193b76fafd550098a0
parentd251c701b940fc1d7d1f29799785d4bc290b8ce6 (diff)
Use a service unit, not a scope unit, to restart
Reportedly `systemd-run --scope` still got killed by the service manager; see #4615. The suspected cause is that `scope` units are run by the `systemd-run` process itself and inherit the caller's execution environment (see systemd-run(1)). To fix this, we use a systemd `service` unit instead, which is run and managed by PID 1 - hopefully this will isolate us sufficiently so that we don't get terminated along with `jellyfin.service`.
-rwxr-xr-xdebian/bin/restart.sh2
-rw-r--r--debian/conf/jellyfin-sudoers6
-rw-r--r--fedora/jellyfin.sudoers6
-rwxr-xr-xfedora/restart.sh2
4 files changed, 8 insertions, 8 deletions
diff --git a/debian/bin/restart.sh b/debian/bin/restart.sh
index be5ca2c8b..4847b918b 100755
--- a/debian/bin/restart.sh
+++ b/debian/bin/restart.sh
@@ -44,7 +44,7 @@ echo "Detected service control platform '$cmd'; using it to restart Jellyfin..."
case $cmd in
'systemctl')
# Without systemd-run here, `jellyfin.service`'s shutdown terminates this process too
- $sudo_command systemd-run --scope systemctl restart jellyfin
+ $sudo_command systemd-run systemctl restart jellyfin
;;
'service')
echo "sleep 0.5; $sudo_command service jellyfin start" | at now
diff --git a/debian/conf/jellyfin-sudoers b/debian/conf/jellyfin-sudoers
index 01e90322b..f84e7454f 100644
--- a/debian/conf/jellyfin-sudoers
+++ b/debian/conf/jellyfin-sudoers
@@ -2,9 +2,9 @@
Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart
Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start
Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop
-Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl restart jellyfin
-Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl start jellyfin
-Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl stop jellyfin
+Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemd-run systemctl restart jellyfin
+Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemd-run systemctl start jellyfin
+Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemd-run systemctl stop jellyfin
Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart
Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start
Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop
diff --git a/fedora/jellyfin.sudoers b/fedora/jellyfin.sudoers
index 5a7054e99..57a9e7b67 100644
--- a/fedora/jellyfin.sudoers
+++ b/fedora/jellyfin.sudoers
@@ -1,7 +1,7 @@
# Allow jellyfin group to start, stop and restart itself
-Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl restart jellyfin
-Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl start jellyfin
-Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemd-run --scope systemctl stop jellyfin
+Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemd-run systemctl restart jellyfin
+Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemd-run systemctl start jellyfin
+Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemd-run systemctl stop jellyfin
jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD
jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD
diff --git a/fedora/restart.sh b/fedora/restart.sh
index be5ca2c8b..4847b918b 100755
--- a/fedora/restart.sh
+++ b/fedora/restart.sh
@@ -44,7 +44,7 @@ echo "Detected service control platform '$cmd'; using it to restart Jellyfin..."
case $cmd in
'systemctl')
# Without systemd-run here, `jellyfin.service`'s shutdown terminates this process too
- $sudo_command systemd-run --scope systemctl restart jellyfin
+ $sudo_command systemd-run systemctl restart jellyfin
;;
'service')
echo "sleep 0.5; $sudo_command service jellyfin start" | at now