|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.10.2009, 20:41 | #1 |
Новичок
Джуниор
Регистрация: 30.10.2009
Сообщений: 3
|
Как закончить процесс вызываемый внутри сервиса?
Всем привет,
возникла такая проблема. по наследству достался исходник Windows сервиса, я его подработал под новую версию софта, под который он написан, но после старта и остановки процесс висит в диспетчере задач, вместо того что бы отработать и исчезнуть, приходиться потом убивать их вручную. Речь идет о процессах stopserver.exe и startserver.exe . Подразумеваю надо куда-то вставить что-то или подправить, помогите пожалуйста т.к сам прежде с этим не работал. СПАСИБО Привожу открывок кода: Код:
Последний раз редактировалось rpy3uH; 01.11.2009 в 19:16. |
30.10.2009, 20:59 | #2 |
Форумчанин
Регистрация: 30.10.2009
Сообщений: 114
|
Вместо ShellExecute используй CreateProcess, а затем по хендлу убивай процесс когда необходимо с помощью TerminateProcess.
|
30.10.2009, 21:05 | #3 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Код:
|
30.10.2009, 21:13 | #4 |
Новичок
Джуниор
Регистрация: 30.10.2009
Сообщений: 3
|
Ребят спасибо, не комментирую лишь мотаю на ус, тк в программирование не силен.
В целом все работает, единственное что когда сервис останавливается в диспетчере задач остается торчать stopserver.exe и он держит том, который монтируется с внешнего стораджа кластерным софтом, и из-за этого просходит подвисание тома, после ручного удаления stopserver все отрабатывает прекрасно, логический том уходит в офлайн. Я буду очень признателен, если допишите к моему коду строчку, которая как раз будет только вызывать stopserver.exe , а не оставлять его навсегда К сожалению проверить смогу только в понедельник на работе. Спасибо Последний раз редактировалось dmitry86; 30.10.2009 в 21:15. |
31.10.2009, 00:37 | #6 |
Новичок
Джуниор
Регистрация: 30.10.2009
Сообщений: 3
|
а как сделать что бы вместо этого куска
while (CountSAAProcs('aleempty') > 0) do Sleep(5000); Sleep(5000); end; было бы когда bs_ процессов становиться ноль (уже есть эта строчка), ждать 10 сек и удалять процесс stopserver.exe... Спасибо |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как закончить программу? | Cry | Помощь студентам | 0 | 21.10.2009 09:28 |
Как раскрасить ячейку внутри StringGrid. | GarfieldX | Общие вопросы Delphi | 5 | 14.02.2008 21:59 |
Как запустить программу из сервиса | Маркъ | Общие вопросы Delphi | 5 | 13.02.2007 00:29 |
как узнать путь запущенного сервиса | Alar | Общие вопросы Delphi | 0 | 30.10.2006 11:18 |