Как запустить программу командной строки на удаленном сервере - PullRequest
1 голос
/ 26 июля 2010

Я написал инструмент, который запускается в командной строке.
Я могу проверить его в командной строке на моем компьютере, и он отлично работает.
Затем я удаленно подключаюсь к целевому серверу и запускаю его в командной строке, и он все еще работает.

Однако ... этот инструмент должен продолжать работать ( это инструмент мониторинга ).
Я не могу оставить свой удаленный сеанс на этой машине открытым слишком долго, поскольку другие люди должны использовать его, и когда я закрываю свой удаленный сеанс, этот инструмент командной строки завершается.

Я не знаю, как и хотел бы избежать написания службы Windows, но по сути мне нужна эта возможность. Мне нужно почти обернуть инструмент командной строки службой Windows, которая может работать на целевой машине, пока я отключаюсь.

Может ли кто-нибудь представить какие-либо идеи / стратегии, как это сделать?

Edit:
Оба приведенных ниже сообщения полезны.

Ответы [ 3 ]

5 голосов
/ 26 июля 2010

Если это Windows Server 2003 или более ранняя версия, вы можете использовать Srvany.exe для запуска любого приложения в качестве службы. Подробнее см. здесь .

Если это Windows Server 2008, SrvAny официально не поддерживается, но вы можете взломать его для работы, скопировав его из Win2003 Resource Kit или более ранней версии, а затем каким-то образом объединить с инструкциями Томаса. 1005 *

Однако написание правильной службы Windows действительно довольно просто, и это лучший способ убедиться, что она счастливо сосуществует со всем остальным.

Просто создайте проект службы Windows в Visual Studio. В OnStart вы создаете поток, который запускает ваш код. В OnStop вы используете флаг, чтобы остановить службу. Тогда ты сможешь сделать это позже.

2 голосов
/ 26 июля 2010

Посмотрите, поможет ли эта страница:

http://www.msfn.org/board/topic/83272-how-to-run-a-program-as-a-service/

1 голос
/ 29 июля 2010

Альтернативное решение заключается в использовании PsExec для запуска вашего инструмента мониторинга на удаленном компьютере в автономном режиме, то есть:

PsExec.exe \\remote_machine -d C:\...\monitoring_tool.exe

PsExec.exe запускает monitor_tool.exe наудаленный компьютер, а затем завершает себя.Он не ожидает завершения monitor_tool.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...