the thing i hate the most about restarting is that it kickes everyone so i have to constantly restart if i get a bad plugin,etc.. and it is verry annoying for the people on the server. i was wondering if it launches an external program that sends a false image of the world for a few seconds untill its done like if a lag spike happened should be a simple script
Um... even if it was possiable, it wouldn't be a simple script... you are talking about holding all current data, states, and w/e else and then, in a way, repasting them back in... you would have to rewrite bukkit to even allow this to happen... I am talking from a programmer stand point of things... One thing you can do is setup a test server or only test plugins at night/when ppl are not on.
I believe that Essentials has a /reload command that pretty much performs the same function as restarting without the downtime. Correct me if I am wrong though.
Not really. /reload should remain available. Think of the number of times I use it to quickly debug my plugins. I know it isn't handled very well but it's good for testing. Perhaps it just needs an 'upgrade' so to speak.
i have seen requests like this a few times (including one for HA) and this would be a quite non trivial task. The easiest way i thought of doing this is having software that in turn connects you to 2 servers (on the same host for best connection) and determines when one server goes down, logs all changes in the backup server and when the other server is restored it sends everything over. When the main server gets caught up do the same for the backup. like i said, fairly non-trivial
Then why haven't you done that ^.-? Again... you would have to save all states and data for it to work... that means 2x the data flow and server cross talk to each other to know if the other goes down... aka raid...Plus you have to get all plugin writiers to also work with it otherwise there wont be any way to get the data in the first place. I don't know about you... but cost for performce doesn't equal the headace needed to get it right... You are ... again... better off having a offline server to test changes to see if they hurt the main server and then maybe reload plugins as needed with the changes... or just wait till everyone logs off or there are just small number of ppl to just warn they they maybe kick off while the server does some changes.
Couldent this work? Server decides to shutdown -> Doesent kick people -> sends a keep alive packet - > Pray for god it does not time out -> Server has started again.
No. The server loses all connections to clients when shutting down, either by actively closing them or discarding them (leading to timeouts). There is no way to recover such a connection after the restart. So at the very least you would have to modify all minecraft clients to try and open a new connection to your server after it started again.