Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.08;
Скачать: CL | DM;

Вниз

Как различить процессы запущенные одним файлом но с разными парам   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2006.01.08;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
1-1133955846
Aleksandr.
2005-12-07 14:44
2006.01.08
Как определить видимость дочернего окна?


5-1120571225
Priest
2005-07-05 17:47
2006.01.08
Количество строк в выпадающем списке св-ва в Objeсе Inspector


4-1131179027
Yus
2005-11-05 11:23
2006.01.08
FileTimeToDosDateTime


2-1135053938
Officeman
2005-12-20 07:45
2006.01.08
Приложение для КПК


14-1134222044
Free0n
2005-12-10 16:40
2006.01.08
Дано такое задание: