Тема: Запуск и остановка веб-сервера с помощью nnCron
Прежде всего ссылка на сайт разработчиков замечательной программы nnCron созданной Николаем Немцевым (бесплатна для жителей стран бывшего СССР): http://www.nncron.ru/index_ru.shtml
Данная программа является не только самым гибким по настройкам и богатым по возможностям планировщиком задач, но благодаря встроенному скриптовому языку с доступом к Win32 API функциям, может делать практически все! И это не преувеличение. Здесь будет рассмотрена простейшая задача по запуску программ, но то что получится должно вам понравиться.
В статье "Инструментарий веб-разработчика" предлагается запускать компоненты веб-сервера с помощью пакетных файлов (.bat), но возникла проблема с ApacheMonitor.exe, который мы можем запустить пакетным файлом, но не можем затем им же остановить, так как изначально в операционной системе отсутствует программа уничтожающая процесс из командной строки. По идее данная проблема легко решалась с помощью установки программы PsKill, созданной Марком Руссиновичем, однако есть более красивое решение, а именно использование богатейших возможностей nnCron.
После установки программы, все что надо сделать - это создать две задачи: для запуска и остановки веб-сервера. Ниже вы видете исходный текст обеих задач, который достаточно вставить в nncron.tab файл и они сразу станут доступны для ввыбора по правом щелчке мыши на значке nnCron в панели задач.
#( Start-WebServer
NoActive
Action:
PROC-EXIST: "ApacheMonitor.exe"
IF
3 BalloonIcon !
BALLOON: "%CUR-TASK-NAME%" "WebServer is already started."
ELSE
START-APP: C:\Program Files\Apache Software Foundation\Apache2.2\bin\ApacheMonitor.exe
SWHide
START-APPW: C:\apache\start-webserver.bat
1 BalloonIcon !
BALLOON: "%CUR-TASK-NAME%" "WebServer is started."
THEN
)#
#( Stop-WebServer
NoActive
Action:
PROC-EXIST: "ApacheMonitor.exe"
IF
KILL: "ApacheMonitor.exe"
TRAY-REFRESH
SWHide
START-APPW: C:\apache\stop-webserver.bat
1 BalloonIcon !
BALLOON: "%CUR-TASK-NAME%" "WebServer is stopped."
ELSE
3 BalloonIcon !
BALLOON: "%CUR-TASK-NAME%" "WebServer is not started."
THEN
)#
Необходимо заметить, что все пути изначальны и при необходимости вы должны их поменять. Пакетные файлы в точности соответствуют тем что указаны в статье.