| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > служба windows |
| Автор: jimbo 4.6.2010, 13:26 |
| Привет всем! Написав свою службу, можно ли заставить ее перезапускать саму себя? |
| Автор: SenkraD 4.6.2010, 13:34 |
| jimbo, можно поподробней? P.S. Можеш постучатся в асю - чем смогу помогу - у меня щас build длинный идёт и мне скучно Добавлено через 4 минуты и 32 секунды Если ты хочеш её перезапустить после креша, то - ставиш SEH обработчик - вызываеш свою прогу с нужным ключём (чтобы она перезапустилась, как сервис) или вызывеш преготовленный батник или вызывеш трерью прогу, которая вызвет тебя |
| Автор: jimbo 4.6.2010, 13:40 |
| допустим, у нас есть программа консольная, которая каждую минуту пишет в файл текущее время. Чтобы не запускать ее постоянно на компе, хочется сделать из программы службу, чтобы она автоматом включалась при включении компьютера и при сбое перезапускалась. Вот тут и вся хитрость. Случаются моменты, когда служба работает, но ничего не пишет в файл. Код приводить бессмысленно, потому что делает он не запись в файл. Вопрос больше из теории, можно ли сделать так, чтобы при возникновении некого события (допустим установка глобальной переменной типа bool в true) наша служба завершала свою работу и снова запускалась? Потому как я понял, при обычном завершении работы службы она уже не запускается, даже если стоит перезапускать всегда в настройках службы |
| Автор: jimbo 4.6.2010, 13:46 | ||||||
Если поставить в настройках службы "перезапускать всегда", то после креша она разве не запустится?
но мне надо перезапуск произвести при рабочей службе. или может я тебя неправильно понял? Добавлено через 1 минуту и 59 секунд
Мне пока только такой вариант идет в голову |
| Автор: SenkraD 4.6.2010, 13:57 | ||||||
а потом запустится вновь и тогда мой сценарий сюда подходит.
то сами сервисы и сервис манагер базовый такого делать не позволяют
Также знаю, что в паре систем быстрой оплаты и пополнения счетов, также взят этот подход (одну когда-то сам писал, о других расказали) |
| Автор: 12usver12 5.6.2010, 23:15 |
| пиши шеллкод, который будет перезапускать, инжектируй в проводник |
| Автор: xvr 6.6.2010, 10:11 | ||
Вот уж антивирусы порадуются PS. А поставить в настройках службы "перезапускать всегда" и просто завершить процесс точно не работает? NB. При проверки надо иметь немного терпения - служба перезапускается не сразу |