From 9e6355ed940bc82b6b17c06526181efb90db88c9 Mon Sep 17 00:00:00 2001 From: NullBite Date: Tue, 20 Jun 2023 03:38:46 -0400 Subject: [PATCH] Separate tmux sockets, fix systemd service --- PKGBUILD | 6 +++--- mcserver | 15 ++++++++------- mcserver@.service | 3 +-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 4b5688c..addf4f4 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: NullBite pkgname=mcserver pkgver=0.0.2 -pkgrel=1 +pkgrel=2 pkgdesc="Minecraft server manager" arch=("any") url="https://gitea.protogen.io/nullbite/mcserver" @@ -9,8 +9,8 @@ license=('GPL') depends=('tmux') source=(mcserver mcserver@.service) -sha256sums=('2ad18525822ff9e6136306fec8379a36151dfe682a4fd00797acb111fbb2831d' - '7a89d9d657cba77e3157c12f3b26a3354101bed46fcc2d3d8ac366bab4198b04') +sha256sums=('c45db69d0b991e37e7ad586f7eeba61aee274e7fc62c1e67dadea4eced14fdc1' + 'e6a901e658acdd23c0ec9dc6a60d672a1cdf931535a16fe634c57fcdb28fb90e') package() { cd "$pkgdir" diff --git a/mcserver b/mcserver index 721f2bd..f75c574 100755 --- a/mcserver +++ b/mcserver @@ -13,25 +13,25 @@ if [[ "$(id -u)" == 0 ]] ; then fi _stop_and_wait () { - tmux $TMUX_OPTS send-keys -t "$TMUX_SESSION" -l "$code_clear" 'stop' "$code_send" + tmux -L "$TMUX_SOCKET" send-keys -t "$TMUX_SESSION" -l "$code_clear" 'stop' "$code_send" echo Waiting for session to exit... - while tmux $TMUX_OPTS has-session -t "$TMUX_SESSION" ; do + while tmux -L "$TMUX_SOCKET" has-session -t "$TMUX_SESSION" ; do sleep 1 done } _start () { - ! tmux $TMUX_OPTS has-session -t "$TMUX_SESSION" > /dev/null 2>&1 && \ - tmux $TMUX_OPTS new-session -d -s "$TMUX_SESSION" "./start.sh" || \ + ! tmux -L "$TMUX_SOCKET" has-session -t "$TMUX_SESSION" > /dev/null 2>&1 && \ + tmux -L "$TMUX_SOCKET" new-session -d -s "$TMUX_SESSION" "./start.sh" || \ die "Instance $instance is already running." } _send_command() { - exec tmux $TMUX_OPTS send-keys -t "$TMUX_SESSION" -l "$code_clear" "$*" "$code_send" + exec tmux -L "$TMUX_SOCKET" send-keys -t "$TMUX_SESSION" -l "$code_clear" "$*" "$code_send" } _attach() { - tmux $TMUX_OPTS attach -t "$TMUX_SESSION" + tmux -L "$TMUX_SOCKET" attach -t "$TMUX_SESSION" } # directories @@ -72,7 +72,8 @@ source ./vars # override value defined in vars for compatibility with old servers TMUX_SESSION=mcserver-"$instance" # set socket for tmux to separate it from user sessions -TMUX_OPTS="-L mcserver" +# also each server gets its own socket so systemd doesn't break +TMUX_SOCKET="mcserver-$instance" case "$cmd" in stop) _stop_and_wait ;; diff --git a/mcserver@.service b/mcserver@.service index a068c8d..4d35967 100644 --- a/mcserver@.service +++ b/mcserver@.service @@ -4,8 +4,7 @@ Wants=network.target After=network.target [Service] -Type=oneshot -RemainAfterExit=true +Type=forking ExitType=cgroup ExecStart=/usr/bin/env mcserver start %i ExecStop =/usr/bin/env mcserver stop %i