Compare commits

..

2 Commits

3 changed files with 16 additions and 12 deletions

View File

@ -1,7 +1,7 @@
# Maintainer: NullBite <aur.archlinux@nullbite.com> # Maintainer: NullBite <aur.archlinux@nullbite.com>
pkgname=mcserver pkgname=mcserver
pkgver=0.0.1 pkgver=0.0.2
pkgrel=4 pkgrel=2
pkgdesc="Minecraft server manager" pkgdesc="Minecraft server manager"
arch=("any") arch=("any")
url="https://gitea.protogen.io/nullbite/mcserver" url="https://gitea.protogen.io/nullbite/mcserver"
@ -9,8 +9,8 @@ license=('GPL')
depends=('tmux') depends=('tmux')
source=(mcserver source=(mcserver
mcserver@.service) mcserver@.service)
sha256sums=('ee656e76d7a53c64f82aac7f79a5e4d36aa08a28b079b4fe0b74902e2e24dd8e' sha256sums=('c45db69d0b991e37e7ad586f7eeba61aee274e7fc62c1e67dadea4eced14fdc1'
'f4fbd63759bef7e99a6d0fbde67dd179817103b30d5486681b2390b8b5f047a7') 'e6a901e658acdd23c0ec9dc6a60d672a1cdf931535a16fe634c57fcdb28fb90e')
package() { package() {
cd "$pkgdir" cd "$pkgdir"

View File

@ -8,26 +8,30 @@ die () {
exit 1 exit 1
} }
if [[ "$(id -u)" == 0 ]] ; then
die 'This script should not be run as root. Plase change the default user with `systemctl --edit mcserver@.service`'
fi
_stop_and_wait () { _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... 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 sleep 1
done done
} }
_start () { _start () {
! tmux $TMUX_OPTS has-session > /dev/null 2>&1 && \ ! tmux -L "$TMUX_SOCKET" has-session -t "$TMUX_SESSION" > /dev/null 2>&1 && \
tmux $TMUX_OPTS new-session -d -s $TMUX_SESSION "./start.sh" || \ tmux -L "$TMUX_SOCKET" new-session -d -s "$TMUX_SESSION" "./start.sh" || \
die "Instance $instance is already running." die "Instance $instance is already running."
} }
_send_command() { _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() { _attach() {
tmux $TMUX_OPTS attach -t "$TMUX_SESSION" tmux -L "$TMUX_SOCKET" attach -t "$TMUX_SESSION"
} }
# directories # directories
@ -68,7 +72,8 @@ source ./vars
# override value defined in vars for compatibility with old servers # override value defined in vars for compatibility with old servers
TMUX_SESSION=mcserver-"$instance" TMUX_SESSION=mcserver-"$instance"
# set socket for tmux to separate it from user sessions # 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 case "$cmd" in
stop) _stop_and_wait ;; stop) _stop_and_wait ;;

View File

@ -6,7 +6,6 @@ After=network.target
[Service] [Service]
Type=forking Type=forking
ExitType=cgroup ExitType=cgroup
User=nobody
ExecStart=/usr/bin/env mcserver start %i ExecStart=/usr/bin/env mcserver start %i
ExecStop =/usr/bin/env mcserver stop %i ExecStop =/usr/bin/env mcserver stop %i
RestartSec=5 RestartSec=5