/home/bedrock/.config/systemd/user/bedrock.service
[Unit]
Description=Minecraft bedrock server
After=network.target
[Service]
Type=forking
#User=%i
WorkingDirectory=/home/bedrock/server
PIDFile=/home/bedrock/server/pidfile
ExecStart=/home/bedrock/bedrock-control.sh start
ExecStop=/home/bedrock/bedrock-control.sh stop
TimeoutStopSec=15
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
[Install]
WantedBy=default.target
bedrock-control.sh
#!/bin/bash
export PATH=$PATH:/usr/bin
start_server()
{
tmux new -c /home/bedrock/server -P -F '#{pid}' -d -s minecraft "LD_LIBRARY_PATH=. ./bedrock_server" > /home/bedrock/server/pidfile
#tmux send-keys -t minecraft.0 "cd /home/bedrock/server/" ENTER
#tmux send-keys -t minecraft.0 "LD_LIBRARY_PATH=. ./bedrock_server" ENTER
}
stop_server()
{
tmux send-keys -t minecraft.0 stop ENTER
sleep 5s
}
while [ -n "$1" ]; do
case "$1" in
start) start_server ;;
stop ) stop_server ;;
esac
shift
done