d251c701b9
systemd-run(1) runs `systemctl restart` in an isolated systemd unit that is not subject to process termination as jellyfin.service is shut down. We adjust the sudoers configuration for this new usage, removing the old config, since restart.sh is the only user of the sudoers policy. Additionally we change `systemctl start` to `systemctl restart` since there was a race condition where jellyfin.service was not fully stopped by the time this ran, so `systemctl start` became a noop. `systemctl restart` on the other hand works whether jellyfin.service is stopped or not. The at(1) hack (and the usage of `start` instead of `restart`) is left in for other init systems since I cannot test on those systems, and because I don't know of any systemd-run(1) equivalent (although it may be a non-issue since alternate init systems do not keep track of daemon children nearly as aggressively as systemd does).
19 lines
746 B
Plaintext
19 lines
746 B
Plaintext
# 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
|
|
|
|
jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD
|
|
jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD
|
|
jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD
|
|
|
|
Defaults!RESTARTSERVER_SYSTEMD !requiretty
|
|
Defaults!STARTSERVER_SYSTEMD !requiretty
|
|
Defaults!STOPSERVER_SYSTEMD !requiretty
|
|
|
|
# Allow the server to mount iso images
|
|
jellyfin ALL=(ALL) NOPASSWD: /bin/mount
|
|
jellyfin ALL=(ALL) NOPASSWD: /bin/umount
|
|
|
|
Defaults:jellyfin !requiretty
|