summaryrefslogtreecommitdiff
path: root/examples/minecserver@.service
blob: bb72c5b83d5ce5bf8a9f6a8d1bb199195d1108d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[Unit]
Description=Minecraft Server %i
#Documentation= https://url https://url man:abc
Wants=network-online.target
After=network-online.target
ConditionFileNotEmpty=%E/minecproxy/config/%i.mcserver
ConditionPathExists=%E/minecproxy/servers/%i/eula.txt
ConditionPathExists=%E/minecproxy/servers/%i/server.properties
ConditionPathExists=%E/minecproxy/servers/%i/server.jar

[Service]
Type=exec
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar --nogui
ExecStop=-/usr/bin/minecctl -c %E/minecproxy/config/ -f stop %i
# Optional: this will autogenerate new servers on the fly
# if this is used, comment out the ConditionPathExists checks above
#ExecStartPre=/usr/bin/minecctl new %i
TimeoutStopSec=120
KillSignal=SIGCONT
Restart=on-failure
WorkingDirectory=%E/minecproxy/servers/%i
Nice=5
LimitCORE=0
NoNewPrivileges=true
KeyringMode=private
PrivateUsers=true
ProtectSystem=strict
ReadWritePaths=%E/minecproxy/servers/%i
PrivateDevices=true
ProtectKernelTunables=true
ProtectControlGroups=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=true
LockPersonality=true
RestrictSUIDSGID=true
PrivateTmp=true