Hajime: The ultimate startup script. Hajime is a new, versatile, high-performance startup script for Minecraft servers running on any Linux system. It is designed for GUI-less servers that have the server files on an external mass storage device, such as a flash drive or SSD with an adapter.

How Does It Work?


Hajime is unlike many other startup scripts. Instead of being based on a systemd service or a Bash program, it is coded entirely in C++ and runs as machine code. This allows unprecedented flexibility and performance. Additionally, it has no dependencies. Currently, binaries are available for ARM devices like Raspberry Pis.

How To Install


To install Hajime on an ARM device, simply download this binary and place in your directory of choice. Preferably, it is placed one directory before he external device's mount point. After doing this, call sudo ./hajime -I and it will automatically make a configuration file for you. Then insert your parameters into that file and now you're done. Hajime will also automatically make a systemd service for you. To enable it, sudo systemctl enable start.service. WARNING! As this script currently depends on the screen utility, a screen session will have to be started in the command used to start the server. For the source code, this is a direct link to it. Currently, compiling the source code is how you use Hajime on architectures like x86.

FAQ


What's the license? Hajime is licensed under the GPLv3. Please review the GPLv3 to see how it applies to you.

What's up with that name? "Hajime" is the Japanese word for "begin." I know this because my judo instructor says it a lot!

I installed it and I got a "Segmentation Fault." What should I do? There is a problem with the configuration file. Make sure you've properly referenced it and that there are no empty lines before the # character.

I have an external storage device and it says it can't mount. What happened? This is a known issue with GUI-based systems which have their own mechanism of mounting a device. If this is the case, disable that system or stop using the script.

I have a Windows system. A Windows version is in the works, so hang on!

I compiled it myself and there's an issue with the linker and the filesystem library. What's the fix? The problem is that g++ sometimes has troubles with the new filesystem specification. Use the command found in the source code to fix this.



News


The Hajime website is now up!

To-Do


Automatically generate an init.d script for servers without systemd.

Add functionality to choose another device if the first doesn't work

Add man pages

Make a Windows compatible version

Add multithreading support

Sponsored by streetlights.info.
Updated July 2020