помогите мне автоматизировать этот процесс

6

Я пришел из Unix, и мне нужно сделать это на Windows Server 2003.

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

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

  2. Есть значок на рабочем столе, который может перезапустить этот фоновый процесс (в случае сбоя). Так что-то вроде ' nohup mycommand &' на * nix

hvgotcodes
источник
Это компьютер, подключенный к домену?
Джеймс Мерц
@kronos, я вхожу через удаленный рабочий стол через мой
MacBook
Я думал, что это будет лучше в ServerFault, но так как вы не знаете, что это такое ... тогда нет необходимости :)
Джеймс Мерц
@kronos, lol, здесь тоже должно быть применимо, правда?
hvgotcodes
1
Да, вы хорошо
Джеймс Мерц

Ответы:

7

Работает при загрузке

Превратите ваш процесс в службу Windows с помощью команды sc . Основной синтаксис:

sc create NewServiceName binpath= c:\windows\system32\newserv.exe

Обратите внимание на пробел после binpath=. После создания службы вы можете настроить ее на автоматический запуск, как и любой другой службы. Если вам неясно, зайдите в меню «Пуск» и выберите Run. Войдите services.mscв открывшееся окно. Откроется оснастка служб в консоли управления Microsoft. Отсюда вы сможете найти свой сервис в списке (среди многих других) и настроить его автоматический запуск с помощью инструментов графического интерфейса. Вы также можете сделать эту часть своей sc createкоманды, но для новичка, вероятно, гораздо проще просто создать чертову вещь, а затем использовать инструменты графического интерфейса, чтобы настроить ее так, как вы хотите.

И последнее замечание: убедитесь, что вы запускаете его с учетной записью, имеющей соответствующие разрешения. Учетные записи службы или системы лучше, но иногда вам нужно что-то другое.

Перезапуск по требованию

Небольшой пакетный файл (* .bat) сделает свое дело:

sc stop NewServiceName
sc start NewServiceName
Джоэл Коухорн
источник
Хорошее объяснение!
BloodPhilia
@joel попробует это спасибо
hvgotcodes
@joel - наконец дошли до этого. Что делать, если команда, которую я использую из командной строки, называется «java -jar thewar.war»? это пошло бы в binpath с кавычками?
hvgotcodes
Я думаю, что вам нужно будет обернуть команду в файл .bat и использовать файл .bat в качестве binpath
Джоэль Коухорн
@joel, это просто файл с .bat в конце с одной строкой?
hvgotcodes
0

Сделайте сервис из вашего процесса, который работает под локальной системой. Затем создайте пакетный скрипт на рабочем столе, чтобы запустить и остановить службу.

РЕДАКТИРОВАТЬ:

Вот несколько ссылок:
Запуск программы как службы.
Управление службами из командной строки.
Создание пакетного сценария.

CamronBute
источник
1
Я не думаю, что ОП знает, что вы имеете в виду, учитывая, что он на самом деле * nix парень. Можете ли вы объяснить, как это сделать?
BloodPhilia
Я не думаю, что понижение было необходимо. Ответ не неправильный. Я подумал, что он может Google это и получить более полную информацию, которую я мог бы предоставить в этом ответе. Я добавлю ссылки в редактировании ...
CamronBute
1
Смысл Суперпользователя (по большей части) состоит в том, чтобы представить решение, которое является полным ... не всегда намек на то, что кто-то еще должен провести исследование в ...
Джеймс Мерц
2
Простая ссылка просто добавляет ссылку гнили на сайт. Прочитайте ответ Джоэлса, который является надлежащим хорошо написанным ответом: он использовал ссылки, но только как источники после цитирования упомянутых источников.
Не перестань преследовать Кайла
@ Kronos @ Кайл Аминь.
BloodPhilia
0

На сервере 2003 откройте оснастку «Политика локального компьютера» в MMC. Разверните «Конфигурация компьютера» - «Настройки Windows», затем откройте «Сценарии» (запуск / завершение работы). Откройте «Автозагрузка», и вы сможете добавить свой сценарий туда. Он должен храниться в папке sysvol.

Вы также можете создать ярлык для этого скрипта на рабочем столе

Дейв М
источник