Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.007 c
14-1134631855
vecna
2005-12-15 10:30
2006.01.08
Путин хочет запретить иностранные банки в России


6-1127661263
AlCache
2005-09-25 19:14
2006.01.08
IdHTTP1.Get, я что-то делаю неправильно?


14-1134601699
ZeeM
2005-12-15 02:08
2006.01.08
Преобразование AnsiString во флоат


14-1134588021
Гарри Поттер
2005-12-14 22:20
2006.01.08
WinInstall софтина из Win2000


14-1134503620
Gero
2005-12-13 22:53
2006.01.08
Ветка-долгожитель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский