我有一个服务器(Bukkit 服务器,用 Java 编写),我在远程 Windows XP 机器上运行它。
我将使用它来启动服务器:
start start_bukkit.bat
这将使用关注服务器的批处理文件创建新的命令行实例。但是,我不想在命令行中看到服务器输出,我需要能够恢复当我再次连接远程命令行管理器时,可以访问实时输出流(以及访问输入,以便我可以运行命令)。
我该怎么做?是否有一些命令可以获取应用程序的 STD 句柄,或者类似的东西?
答案1
据我了解,你正在使用Telnet连接方式从管理控制台。
这有点类似于psexec \\REMOTE_PC cmd.exe
。“Telnet 连接模式”只是将文本输入传输到远程计算机的命令提示符并传回其响应。
“Telnet 连接模式”会cmd.exe
在远程创建一个(不可见的)。首先,无法重新连接到同一个cmd.exe
。退出后,cmd.exe
将关闭。
第二,它cmd.exe
运行在与桌面用户不同的级别。所有程序都是从它启动的还运行在那个级别。那些程序不要互动使用桌面,您将无法在“完全控制”(即桌面模式)中看到它们。(尝试启动notepad.exe
,它会停留在进程中但不可见)重新连接到现有cmd.exe
或程序(您启动时使用的程序start
是不可能的。)
也许有可能使用重定向进行输出和输入。这取决于程序是否可行。例如,如果您可以将其更改为输入从一个文件取出,输出转到另一个文件,则可以通过读取和写入这些文件来控制它。
但现在,如果您想查看(并与之交互)“Bukkit 服务器”,则需要使用 Radmin 的“完全控制”来启动它(以查看远程计算机的完整桌面)。重新连接到桌面后,您的服务器仍会可见地运行。