diff --git a/mineserve b/mineserve index 151654c..8469f55 100755 --- a/mineserve +++ b/mineserve @@ -13,25 +13,23 @@ status() { echo } -serve() { - java -Xms1G -Xmx5G -jar server.jar nogui -} - start() { if test -f "$PID"; then echo "Server already running with pid: $(cat $PID)" status exit 0 fi - screen -S minecraft -dm serve + screen -S minecraft -dm java -Xms1G -Xmx5G -jar server.jar nogui pgrep -P "$(screen -list | sed -E -n 's/\s*([0-9]+).minecraft.*/\1/p')" > $PID } stop() { if test -f "$PID"; then + SCREEN_PID=$(screen -list | sed -E -n 's/\s*([0-9]+).minecraft.*/\1/p') screen -S minecraft -X stuff "stop " echo -n "Waiting for shutdown..." - while screen -list | grep -q "minecraft"; do + # kill -0 checks if a process is running + while kill -0 $SCREEN_PID 2> /dev/null; do sleep 3 echo -n "." done diff --git a/rdify b/rdify index 28044b5..cd45bb6 100755 --- a/rdify +++ b/rdify @@ -26,11 +26,10 @@ class RamDiskItem(): self.persist.mkdir(parents=True, exist_ok=True) self.ramdisk.mkdir(parents=True, exist_ok=True) - if self.target.is_file(): shutil.copy2(self.target, self.ramdisk) else: - shutil.copytree(self.target, self.full_rd_path) + shutil.copytree(self.target, self.full_rd_path, dirs_exist_ok=True) shutil.move(self.target, self.persist) os.symlink(self.full_rd_path, self.target)