Application RemoteToolkit - Restarts + crash detection + auto saves + remote console!

Discussion in 'Bukkit Tools' started by drdanick, Jan 15, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    drdanick

    Minecraft RemoteToolkit
    -Less downtime, more fun for your players, more power to you!

    Are you a Minecraft server administrator? Do you value up-time and stability? Do you fancy the ability to remotely control your server, both in-game and out of game, in a myriad of useful ways from a plethora of different devices?
    If you answered yes to any of the above, then the Minecraft RemoteToolkit is for you!


    What the Minecraft RemoteToolkit Plugin and Wrapper do for you:
    • Provides almost perfect server uptime with no need for action from an owner/administrator!
    • Have your server save and restart at any time period with configurable restart warnings!
    • The Toolkit guarantees a restart within the set restart period, even if your server crashes, becomes unresponsive, or encounters a "SEVERE" exception!
    • Remotely control every function of the Toolkit, even from your smart phone!
    • Full remote console access via telnet with support for multiple terminal types!
    • Telnet daemon conforms to current Telnet related RFCs!
    • Customizable alert messages!
    • Fully extendable though 3rd party modules!
    • Full feature set works with most craftbukkit builds!
    • Most features work with any Minecraft server variation, even vanilla!
    • Telnet can be disabled!
    For server administrators
    Download - Release 10, Alpha 15.3 [CB 1.7.2-R0.2] (wget friendly)
    Instructions & Documentation

    For developers
    UDP API REV 8 | Documentation
    Module API | Coming soon!

    For everyone
    Official IRC channel
    #remotetoolkit @ irc.esper.net


    "Help! I've downloaded it, but I do not know how to get it working!"
    Stop! Before you give up or ask for help, make sure you have read the step-by-step installation instructions on the wiki page. If you are still having problems, please do not be hesitant to post a request for help on this thread or in the IRC channel - no matter how simple your problem seems.


    Todo


    [​IMG][​IMG]
    Any donation would be very much appreciated. I'm but a poor University student, and I sacrifice quite a lot of unpaid time to keep the Toolkit updates and support flowing.

    Thank you to the following who have chosen to support the Toolkit through a donation:
    Deren909, marshall007, Vittek, clanslots, meee, KyneSilverhide, szoller, hungoverfurball, Lama_0, Viet, acc1dent, joby890, Liger_XT5
     
    Last edited: May 6, 2017
  2. Offline

    RchGrav

    Hi Everyone...

    I created a script for windows that works w/ rtoolkit. It presents a simple menu with all of the rtoolkit functions that can be triggered.

    Just extract the archive to any folder, edit udptool.cmd to put your specific settings in, and double click it.

    The script uses NetCat (which is also included in the archive) to send the UDP packet to rtoolkit and waits long enough to receive the response & display the output on the console.

    It's a simple script that is not only useful, but it also serves as an example of using NetCat send commands to rtoolkit.



    Regards,

    RchGrav

    DOWNLOAD
    update: The download link is now fixed.
     
  3. Offline

    o0AzzA0o

    Did you restart just the server or server+toolkit? because rtoolkit runs as seperate jar and i find i need to stop that to apply any config changes with the rtoolkit config.

    But yes im getting same problem but in different way i cant get it to do a save at all and i first started this new version with 0 value ... i also tryed to change it to m but i dont think it requires that should just be 30 not 30m for example.
     
  4. Offline

    drdanick

    I have plans to implement that soon ;)

    Are you restarting the wrapper or just the server when you make the changes?

    What is the exact value you are entering into the config?

    Thanks for that, I will work on implementing that into the algorithm. Setting severe-exception-detection-level to 1 should work best for you for the time being.
     
  5. Offline

    Snowl

    Will you be able to make a java jar open while the server is stopped? So I can enable starting up the server :p
     
  6. Offline

    drdanick

    You can easily send a simple UDP packet to my wrapper to start it up again. It'd be much simpler, and I can provide PHP code for it. If you want a different method, send me the specifications for it and I can probably implement it. Though, it'd be much, much easier on me if you used my API ;)
     
  7. Offline

    Snowl

    Yeah, the problem is that milkAdmin can only run while bukkit is running, ergo it cant run while its stopped :( I dont really want to host a server so having it able to execute a java jar would be awesome (i could start up another server and when they start up the server it stops the server and starts up milkAdmin)
     
  8. Offline

    drdanick

    I can integrate that functionality into the wrapper easily. It's a bit redundant starting up a second listen server. Just tell me what it needs to be able to do to fit your interface's needs and i'll try to implement it as best I can.
     
  9. Offline

    Senzuri

    Hi,

    First off I need to say you've got a really wonderful plugin here, however I'm getting the following error:

    Code:
    UDP Socket exception: java.net.SocketException: Socket closed
    Starting UDP listen server on port 25561
    java.net.SocketException: Connection reset
            at java.net.SocketInputStream.read(SocketInputStream.java:168)
            at java.net.SocketInputStream.read(SocketInputStream.java:182)
            at java.io.FilterInputStream.read(FilterInputStream.java:66)
            at net.minecraft.server.Packet.b(SourceFile:102)
            at net.minecraft.server.NetworkManager.f(SourceFile:157)
            at net.minecraft.server.NetworkManager.c(SourceFile:15)
            at net.minecraft.server.NetworkReaderThread.run(SourceFile:68)
    I'm running craftbukkit version 400 and running this on ubuntu 9.10. Every time I get this error (about once every 2 hours) the server crashes and it doesn't restart itself.

    Edit: Using Toolkit Version: 1.0_b17_1 ALPHA

    Any ideas?
     
  10. Offline

    drdanick

    The exception is being thrown by the server (bukkit), not the toolkit. The wrapper should restart the server regardless of whether it stopped properly or not after a grace period set forth by forced-restart-delay. This sort of exception won't be caught by the error detection algorithm, but the forced restart will at least guarantee a restart shortly after the designated restart time.

    Also, is it always occurring straight after the UDP server refreshes itself?
     
  11. Offline

    zajacmp3

    Hello,
    From the moment as I am running minecraft server on a RAM disc i get this error.

    Code:
    SEVERE: Could not load plugins/Vanish.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:115)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:80)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:37)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:153)
            at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:140)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:104)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:177)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Caused by: java.lang.NoClassDefFoundError: net/minecraft/server/EntityHuman
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:264)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:74)
            ... 8 more
    Caused by: java.lang.ClassNotFoundException: net.minecraft.server.EntityHuman
            at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:31)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            ... 11 more
    Feb 13, 2011 5:04:19 PM org.bukkit.plugin.SimplePluginManager loadPlugins
    SEVERE: Could not load plugins/AutoMessage.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:115)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:80)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:37)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:153)
            at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:140)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:104)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:177)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Caused by: java.lang.NoSuchMethodException: com.bukkit.mdit.automessage.AutoMessage.<init>(org.bukkit.plugin.PluginLoader, org.bukkit.Server, org.bukkit.plugin.PluginDescriptionFile, java.io.File, java.lang.ClassLoader)
            at java.lang.Class.getConstructor0(Class.java:2719)
            at java.lang.Class.getConstructor(Class.java:1672)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:76)
            ... 8 more
    2011-02-13 17:04:19 [INFO] Done! For help, type "help" or "?"
    

    It is simple thing... Plugins do not load.
    Fresh download, changed only user and password in rtoolkit.sh
    Running Centos 5 the same on ubuntu10.10 and java 1.6 and java 1,7
     
  12. Offline

    drdanick

    Try running it without the wrapper and see if this still happens.
     
  13. Offline

    o0AzzA0o

    Ignore that i was running 2x instances of server and the wrapper was restarting the other one ^^ doh!

    and setting detection to lvl 1 is working fine with that chat error thanks.
     
  14. Offline

    NordicBlue

    When i put it like this: extra-runtime-arguments= -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:parallelGCThreads=2 -XX:+AggressiveOpts
    I get an error saying that the runtime arguments are invalid, what am i doing wrong?
     
  15. Offline

    blaize9

    if i want to run with 1.5g ram would i be like this?
    Code:
    @echo off
    java  -Xms1536M -Xmx1536M -Xmx30M -Xms30M -XX:MaxPermSize=40M -jar Minecraft_RKit.jar username:pass
     
  16. Offline

    Incendia

    Same problem

    Code:
    extra-runtime-arguments=-server -XX\:+UseConcMarkSweepGC -XX\:+UseParNewGC -XX\:+CMSIncrementalPacing -XX\:ParallelGCThreads\=6 -XX\:+AggressiveOpts
    
    Code:
    Minecraft Remote Toolkit V1.0_b17_1 ALPHA
    Initializing...
    Loading toolkit properties...Done.
    Wrapper is running on: Windows 7 6.1 amd64
    Starting wrapper...
    Starting UDP listen server on port 25561
    Could not create the Java virtual machine.
    Unrecognized option: -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=6 -XX:+AggressiveOpts
    Restarting...
    Could not create the Java virtual machine.
    Unrecognized option: -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=6 -XX:+AggressiveOpts
    Restarting...
     
  17. Offline

    drdanick

    extra-runtime-arguments calls for a comma separated list, so it should be formatted like this:
    Code:
    -server,-XX\:+UseConcMarkSweepGC,-XX\:+UseParNewGC,-XX\:+CMSIncrementalPacing,-XX\:ParallelGCThreads\=6,-XX\:+AggressiveOpts
    
    You'll want to set initial-heap-size and maximum-heap-size in wrapper.properties to 1536M.
    You would then just run the toolkit with this:
    Code:
    java -Xmx30M -Xms30M -XX:MaxPermSize=40M -jar Minecraft_RKit.jar
    
     
  18. Offline

    nossr50

    Bug Report: After one of the automated reboots the wrapper will not respond to wrapper commands such as .stopwrapper, etc... It's fine until then.
     
  19. Offline

    Jobsti

    hey @drdanick

    I have your plugin only @ my mainserver and I've seen a file "swap.bin" with 326mb.
    Is this file from your "plugin"? because it's the only plugin which only runs at my mainserver.

    My other idea is it's from the BB with MYSQL, I have to ask ;)
     
  20. Offline

    drdanick

    Odd. I will look into that ASAP.

    That is definitely not from the wrapper.
     
  21. Offline

    Jobsti

    Oki, thanks.
     
  22. Offline

    Snowl

    Alright. If a jar file exists in /toolkit then open it using the wrapper. That's basically all I need, and the ability to do a
    Code:
                      			executeCommand(RTKInterface.CommandType.START);
    
     
  23. Offline

    drdanick

    The problem is that opening a child process is not easy to do. I'd have to rewrite a lot of code for it to work, and there are always problems to be had.
    I'll write a class loader with access to some of the toolkits base functions. I'll open an API much like bukkit's and you'll be able to write something similar to a plugin that can sit in the toolkit folder. I've been planning on doing something like this for a while, so it's no big trouble.

    But again, it would be really nice if you just used the API I already have in place. It would save a little bit of work on my end :p
     
  24. Offline

    Snowl

    I understand that, if it's too hard it doesn't really matter :p I already use the API, but since my plugin obviously can't be loaded while Bukkit isn't loaded they can't start the server.
     
  25. Offline

    drdanick

    You can use the API from your web interface. There are PHP commands to send the required UDP packets on the first few pages of the thread. They are very simple.

    If you really can't do that for some reason, I will have the class loader done soonish.
     
  26. Offline

    Snowl

    I'm not hosting anything, it starts a web server when bukkit is started, so yeah :p I can wait for millenia until its done, but thats awesome :D
     
  27. Offline

    drdanick

    Haha, I obviously didn't look too far into how your plugin worked. :p I'll try to have the class loader up by the end of the week.
     
  28. Offline

    Snowl

    Hehehe. I don't mind how long it takes.
     
  29. Offline

    drdanick

    What version of the wrapper are you using? I recently fixed a bug where console input would cease to work if anything was entered while the server was restarting.
     
  30. Offline

    oliverw92

    Would it be possible to pipe all data from the console into the remote console? At the moment it only seems to send certain stuff through, i.e. if i restart the server barely any of the startup information comes through which makes it hard to debug issues remotely.
     
  31. Offline

    drdanick

    Everything is (or should be) piped through (apart from some lines pertaining to the wrapper). I'll look into it.

    Edit: All the startup lines come through fine for me. What OS are you running it on? What lines are you missing?
     
Thread Status:
Not open for further replies.

Share This Page