Форум: "WinAPI";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
ВнизКак различить процессы запущенные одним файлом но с разными парам Найти похожие ветки
← →
msgipss (2005-11-02 06:59) [0]Здравствуйте знатоки MSDN,
Помогите пожалуйста решить следующую задачу: Имею исполняемый модуль (например test.exe), который может запускаться с различными параметрами и соответственно реализует различную логику.
В списке процессов я получаю несколько процессов под одним именем образа test.exe. Задача моя закрывать определенный процесс если он выходит за некоторые ограничения и запускать его заново. Так вот вопрос как определить какой процесс я закрыл (с какими параметрами он был запущен), чтобы запустить его именно с теми же параметрами.
Заранее благодарен за любую информацию по данному вопросу.
← →
MBo © (2005-11-02 09:24) [1]test.exe - твоя программа?
← →
Leonid Troyanovsky © (2005-11-02 09:38) [2]
> msgipss (02.11.05 06:59)
> я закрыл (с какими параметрами он был запущен), чтобы запустить
> его именно с теми же параметрами.
http://rsdn.ru/?Forum/?mid=18652
--
Regards, LVT.
← →
msgipss (2005-11-02 11:13) [3]MBo © (02.11.05 09:24) [1]
вообще то нет, а какая раница ?
← →
MBo © (2005-11-02 11:19) [4]>msgipss (02.11.05 11:13) [3]
> вообще то нет, а какая раница ?
Ну если программа твоя, то ты можешь дополнить ее, чтобы она простым путем сообщала о своей ком. строке , а иначе - придется внедряться в чужое адресное пространство
← →
Digitman © (2005-11-02 11:23) [5]
> msgipss (02.11.05 11:13) [3]
> а какая раница ?
а большая.
если приложение твое, то и принудительно снимать с выполнения его процесс нет никакого резона - алгоритм ЭТОГО (т.е. "своего") приложения всегда можно изменить так чтобы реализовать требуемую логику.
если же приложение "чужое", то без "хитростей" доступа в "чужое" АП к системным структурам интересующего процесса не обойтись ...
любопытно было бы узнать, что же за "ограничения" такие, превышение которых которые требует принудительное снятие процесса и его последующий рестарт ..
← →
msgipss (2005-11-02 13:33) [6]MBo © (02.11.05 11:19) [4] и
Leonid Troyanovsky © (02.11.05 09:38) [2]
понял спасибо
Digitman © (02.11.05 11:23) [5]
не ругайся Digitman *), задача следующая:
есть чужое приложение (сервер доступа к данным scada системы), оно запускается с параметрами на одном сервере приложений несколько раз, во время выполнения иногда! раз в неделю допустим или в месяц или в день или в час, системы замечено не было оно кушает все ресурсы по памяти и вешает соответственно сервер, либо сама заверщает свою работу.
Была попытка решить задачу в общем виде, написана служба в которая следит за указанными процессами (устанавливается в конфигурировании этой службы) и мониторит как бы кто больше чем положено не съел (проц.ресурсы, память, тоже конфигурируется). и перезапускает, или если без проса завершает работу то запускает заново.
Конечно конкретно задачу можно было решить без наворотов http://rsdn.ru/?Forum/?mid=18652 и т.д. но хочется попробовать *)
Спасибо за наводку, если есть еще материалы по вопросу был бы очень признателен
← →
Digitman © (2005-11-02 13:37) [7]
> оно запускается с параметрами
кем ? тобой ? т.е. программно ?
← →
msgipss (2005-11-02 14:05) [8]Сервер доступа это приложение win32, можно запустить либо с srvany как службу либо при логоне автостартом. Пока запускается при автологоне системы автостартом.
а что ?
← →
Digitman © (2005-11-02 14:17) [9]ниччерта не понимаю ...
давай уже рассказывай подробно)
> Сервер доступа это приложение win32
с параметрами запускается именно ОНО ? об экземплярах ЕГО идет речь ?
← →
msgipss (2005-11-02 14:33) [10]сорри, если не понятно объяснил
1. имеется программа, на с++ написанная (по моему)
2. она запускается на компьютере 5 раз с различными параметрами
3. она имеет свойство время от времени завершать свою работу вследствие какой то ошибки наверное, и съедать все доступные ресурсы
4. нужно следить за ней и в случае сбоя (слетела, съела все ресурсы) перезапускать, можно конечно переименовать ее в 5 различных имен и тогда по различию не будет проблем, но захотелось решить задачу в общем случае (универсально).
← →
Digitman © (2005-11-02 14:48) [11]1. Начхать на чем она написана, важно что "чужая" (т.е. изменение ее исх.текстов и пересборка исключены)
2. Я и спросил - КЕМ (или ЧЕМ, т.е. какими средствами) запускается ? тобой (т.е. твоей программой) ? планировщиком ? или ... ?
3. фтопку такие программы.
4. следить за такими, с позволения сказать, "программами" - себе дороже станет.
Ответ на 2 - ключевой ...
← →
msgipss (2005-11-02 15:13) [12]Ответы на вопросы
1. программа чужая, изменения не возможны (по крайней мере мною)
2. запускается мной (моей программой)
3. отказаться нет возможности (по крайней мере в данный момент)
4. дороже в смысле ?
А отобразить полный путь к исполняемому файлу процесса, тоже только через внедрение в чужое АП *) ?
← →
Leonid Troyanovsky © (2005-11-02 15:49) [13]
> msgipss (02.11.05 15:13) [12]
> 1. программа чужая, изменения не возможны (по крайней мере
> мною)
> 2. запускается мной (моей программой)
> 3. отказаться нет возможности (по крайней мере в данный
> момент)
В автозагрузке д.б. твоя программа.
Твоя программа принимает запросы на запуск левой, сохраняет комстроку,
и пускает ее CreateProcess, ожидая (в отдельном потоке) ее завершения.
При необходимости (левая программа завершилась ранее намеченного)
она перезапускается с сохраненными (измененными) параметрами.
Ну, и запускать левое приложение следует только из своего.
Я бы делал свое консольным приложением, бо ресурсами,
видимо, его будут обделять.
Да, и не забыть про синхронизацию (ввода/вывода), например,
через критическую секцию.
--
Regards, LVT.
← →
Digitman © (2005-11-02 15:52) [14]
> 2. запускается мной (моей программой)
а это значит, что :
- ты имеешь доступ к хэндлу объекта-процесса, стартованного тобой
- имея этот хэндл ты имеешь возможность контролировать "время жизни" стартованного тобой процесса, ибо этот хэндл является объектом синхронизации
- событие завершения этого процесса вполне можно трактовать как событие "освобождения" того самого файла, с которым работал этот процесс.
← →
msgipss (2005-11-04 05:44) [15]Всем спасибо за принятие частия в обсуждении
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c