Automatically start and stop (!) a server when nobody's playing
1 diamonds
- #!/bin/bash
- cd "$(dirname "$0")"
- # Change the next variables if needed
- RUN="bukkit.jar"
- USERNAME="minecraft"
- MINMEM="256M"
- MAXMEM="1280M"
- if ! pgrep -U "$USERNAME" -f "$RUN" > /dev/null ; then
- screen -dmS minecraft sudo -u "$USERNAME" -- /usr/bin/java -XX:ParallelGCThreads=2 -Djava.net.preferIPv4Stack=true -Xmx$MAXMEM -Xms$MINMEM -jar "$RUN"
- echo -en "xFFx00x16x00"
- echo -n "$MESSAGE" | sed 's/./x0/g'
- echo -en "xA7x00x30x00xA7x00x35"
- fi
- IP=$(sed -n 's/^server-ips*=s*([0-9.]*)s*$/1/p' server.properties)
- PORT=$(sed -n 's/^server-ports*=s*([0-9]*)s*$/1/p' server.properties)
- exec sudo -u "$USERNAME" nc "${IP:-127.0.0.1}" "${PORT:-25555}"
- #!/bin/bash
- cd $(dirname $0)
- scan=minecraft
- pl() {
- screen -S $scan -p 0 -X stuff 'who15'
- echo $(tail -n 1 /opt/minecraft/server.log | cut -f 6- -d ' ' | wc -m)
- }
- [ $(pl) -lt 5 ] && {
- echo NO players connected
- sleep 300
- screen -S $scan -p 0 -X stuff 'who15'
- [ $(pl) -lt 5 ] && {
- screen -S $scan -p 0 -X stuff 'stop15'
- }
- }
- # 25565 stream tcp nowait root /srv/minecraft/connectserver
- service minecraft
- {
- disable = no
- type = UNLISTED
- port = 25565
- socket_type = stream
- protocol = tcp
- user = root
- wait = no
- server = /opt/minecraft/start.sh
- max_load = 20.0
- }
- #change the 'server' setting to whatever dir minecraft is in.
- */15 * * * * /opt/minecraft/stop.sh
- #again, edit it to match de minecraft server directory
Additional Details
| Tags: | Low Use, Start, Stop, Crontab, Script, Tutorial |
Join us to post comments.
Comments : 3
1 - 3 of 3
1 - 3 of 3











Reply
Delete
tomenluc
Level 29
Expert Mage
October 7, 2012, 7:49 am
Reply
Delete
kjoe
Level 15
Journeyman Architect
October 20, 2012, 3:08 am
Reply
Delete
superdisc_
Level 1
New Explorer
September 28, 2012, 1:35 pm