I’ve completed writing the start script for Aetacraft’s Minecraft server. I’ve named the script IronMC due to it being very durable (much like iron blocks). In true Aetacraft fashion, I’ve made the script open source and put the script up on GitHub. The script is a fork of ForsakenDev’s MinecraftStartupScript project. IronMC adds the ability to have a watchdog watch over the Minecraft Server software. If the server software crashes for any reason IronMC will automatically restart it. It is a wrapper for Minecraft servers so it’s compatible with Bukkit, Spigot, Glowstone, CauldronMC, or any other Minecraft server project you happen to be using.
IronMC uses the Cron task scheduler (which built into Linux) to schedule how often it checks your Minecraft server to make sure it’s still up. I recommend scheduling once every 1 or 2 minutes. You can also have IronMC automatically run commands on your server such as “save-all”, “restart” to do automatic server restarts (EX: restart the server once every 6 hours), make global announcements/warnings to users, execute automatic backups, and much more. IronMC can replace all of your announcer and autosave plugins. So you don’t have to wait for all your plugins to be updated whenever the base Minecraft game is updated.
Scheduling tasks though Cron also helps prevent sophisticated hackers from finding vulnerabilities to exploit in your system. By analyzing how long your system takes to do certain tasks (starting the server, backups, saves, etc.) hackers can make guesses about what hardware you are using and what other tasks the system may be doing throughout the day. Since plugins base their task scheduling based on when the server is up and running it can be easier to determine how loaded the system is. Since Cron uses the system time for scheduling tasks, system load is a bigger mystery (see my article about extremely accurate time keeping).
There are currently no plans to port IronMC to Windows. Such a port would require a MASSIVE rewrite. Honestly if you want high uptime you should really consider using Linux in the first place. Although if enough people want IronMC for Windows I may consider porting it.
To download IronMC or to get more information about it I suggest checking the project out on GitHub.