/// <summary> /// Register common commands once m_console has been set if it is going to be set /// </summary> public void RegisterCommonCommands() { if (m_console == null) { return; } m_console.Commands.AddCommand( "General", false, "show info", "show info", "Show general information about the server", HandleShow); m_console.Commands.AddCommand( "General", false, "show version", "show version", "Show server version", HandleShow); m_console.Commands.AddCommand( "General", false, "show uptime", "show uptime", "Show server uptime", HandleShow); m_console.Commands.AddCommand( "General", false, "get log level", "get log level", "Get the current console logging level", (mod, cmd) => ShowLogLevel()); m_console.Commands.AddCommand( "General", false, "set log level", "set log level <level>", "Set the console logging level for this session.", HandleSetLogLevel); m_console.Commands.AddCommand( "General", false, "config set", "config set <section> <key> <value>", "Set a config option. In most cases this is not useful since changed parameters are not dynamically reloaded. Neither do changed parameters persist - you will have to change a config file manually and restart.", HandleConfig); m_console.Commands.AddCommand( "General", false, "config get", "config get [<section>] [<key>]", "Synonym for config show", HandleConfig); m_console.Commands.AddCommand( "General", false, "config show", "config show [<section>] [<key>]", "Show config information", "If neither section nor field are specified, then the whole current configuration is printed." + Environment.NewLine + "If a section is given but not a field, then all fields in that section are printed.", HandleConfig); m_console.Commands.AddCommand( "General", false, "config save", "config save <path>", "Save current configuration to a file at the given path", HandleConfig); m_console.Commands.AddCommand( "General", false, "command-script", "command-script <script>", "Run a command script from file", HandleScript); m_console.Commands.AddCommand( "General", false, "show threads", "show threads", "Show thread status", HandleShow); m_console.Commands.AddCommand( "Debug", false, "threads abort", "threads abort <thread-id>", "Abort a managed thread. Use \"show threads\" to find possible threads.", HandleThreadsAbort); m_console.Commands.AddCommand( "General", false, "threads show", "threads show", "Show thread status. Synonym for \"show threads\"", (string module, string[] args) => Notice(GetThreadsReport())); m_console.Commands.AddCommand( "Debug", false, "debug threadpool set", "debug threadpool set worker|iocp min|max <n>", "Set threadpool parameters. For debug purposes.", HandleDebugThreadpoolSet); m_console.Commands.AddCommand( "Debug", false, "debug threadpool status", "debug threadpool status", "Show current debug threadpool parameters.", HandleDebugThreadpoolStatus); m_console.Commands.AddCommand( "Debug", false, "debug threadpool level", "debug threadpool level 0.." + Util.MAX_THREADPOOL_LEVEL, "Turn on logging of activity in the main thread pool.", "Log levels:\n" + " 0 = no logging\n" + " 1 = only first line of stack trace; don't log common threads\n" + " 2 = full stack trace; don't log common threads\n" + " 3 = full stack trace, including common threads\n", HandleDebugThreadpoolLevel); // m_console.Commands.AddCommand( // "Debug", false, "show threadpool calls active", // "show threadpool calls active", // "Show details about threadpool calls that are still active (currently waiting or in progress)", // HandleShowThreadpoolCallsActive); m_console.Commands.AddCommand( "Debug", false, "show threadpool calls complete", "show threadpool calls complete", "Show details about threadpool calls that have been completed.", HandleShowThreadpoolCallsComplete); m_console.Commands.AddCommand( "Debug", false, "force gc", "force gc", "Manually invoke runtime garbage collection. For debugging purposes", HandleForceGc); m_console.Commands.AddCommand( "General", false, "quit", "quit", "Quit the application", (mod, args) => Shutdown()); m_console.Commands.AddCommand( "General", false, "shutdown", "shutdown", "Quit the application", (mod, args) => Shutdown()); m_console.SetCntrCHandler(Shutdown); ChecksManager.RegisterConsoleCommands(m_console); StatsManager.RegisterConsoleCommands(m_console); }