Enregistrer et utiliser le handle de la sortie de la console d'application

1

J'ai un serveur (serveur Bukkit, écrit en Java) et je l'exécute sur une machine Windows XP distante.
J'utiliserais ceci pour lancer le serveur:

start start_bukkit.bat

Cela créera une nouvelle instance de ligne de commande avec le fichier de commandes qui concerne le serveur. Cependant, je ne verrai pas la sortie du serveur en ligne de commande, et je dois être capable de reconquérir l'accès au flux de sortie en temps réel (ainsi que l'accès à l'entrée, afin que je puisse exécuter des commandes), lorsque je me connecte à nouveau avec le gestionnaire de ligne de commande distant.
Comment je ferais ça? Existe-t-il une commande permettant d’obtenir le descripteur STD de l’application, ou quelque chose de similaire?

Tomáš Zato
la source
Pourquoi utilisez-vous start start_bukkit.bat au lieu de start_bukkit.bat? L'utilisation du bureau à distance (RDP) n'est pas une option?
Martin
Parce que si vous lancez une instance de console et y lancez bukkit, celui-ci sera fermé lorsque vous vous déconnecterez du serveur distant (j'utilise radmin).
Tomáš Zato
Vérifiez start_bukkit.bat pour une ligne qui dit exit (juste cela) si oui, supprimez-le ou faites-le précéder de rem. Alors essayez juste de courir start_bukkit.bat au lieu de start start_bukkit.bat
GregHNZ
Ne comprenez-vous pas que je dois accéder à nouveau à la console lorsque je me reconnecte? Je me connecte d'une manière très similaire à SSH.
Tomáš Zato

Réponses:

0

Si je comprends bien, vous utilisez le Mode de connexion Telnet de Radmin .

Ceci est quelque chose de similaire à psexec \\REMOTE_PC cmd.exe. Le "mode de connexion Telnet" transfère simplement la saisie de texte à l'invite de commande de l'ordinateur distant et renvoie ses réponses.

Le "mode de connexion Telnet" crée un (invisible) cmd.exe sur la télécommande. Tout d’abord, il n’ya aucun moyen de se reconnecter au même cmd.exe. Après avoir quitté le cmd.exe est fermé.

Deuxièmement, c'est que cmd.exe s'exécute à un niveau différent de l'utilisateur de bureau. Tous les programmes ont commencé également courir à ce niveau. Ces programmes ne pas interagir avec le bureau et vous ne les verrez pas dans "Contrôle total" (c’est-à-dire en mode Bureau). (Essayez de commencer un notepad.exe, il persiste dans les processus mais n’est pas visible) Reconnexion à un serveur existant cmd.exe ou programme (avec lequel vous avez commencé start n'est pas possible.)

Peut-être existe-t-il une possibilité d'utiliser la redirection pour la sortie et l'entrée. Cela dépend du programme si cela fonctionne. Par exemple, si vous pouvez le modifier, cette entrée étant extraite d'un fichier et la sortie transférée vers un autre fichier, vous pouvez le contrôler en lisant et en écrivant ces fichiers.

Mais comme il est maintenant et que vous voulez voir (et interagir avec) le "serveur Bukkit", vous devez le démarrer en utilisant "Contrôle total" de Radmin (pour voir le bureau complet de l'ordinateur distant). Après la reconnexion au bureau, votre serveur fonctionnera toujours de manière visible.

Rik
la source