If I start the server in background mode in either bash or a service script, for example: java -Xms1024 -Xmx4096 -jar StarMade.jar -server & This causes high CPU usage (98+ percent) on the CPU. It looks like the admin thread (pardon my assumptions on the program structure) is either parsing 0-length input or exception handling as fast as it can, due to no longer having access to stdin, pushing the thread to 100% usage. A workaround is to launch the server using screen without pushing to the background. Even in screen, pushing to the background causes the same issue.
While the server is running in background by script, it maxes one CPU as described.
Thread timing shows, the main thread consuming time goes from "servercontroller" to "syninlistener" when running in background.
CPU-Time while in background:
Compare to CPU-Time while in screen session (or normal use with terminal up)
Also added two application snapshots from visual VM containing thread snapshots, they may help too, also assuming this is a similar issue to the "dedicated server GUI maxing out one CPU" issue, so will be linking this in here too.