получить PID процесса 1С #548399


#0 by MiracMC
День добрый, коллеги. Так и не нашел места, куда бы приткнуть свой вопрос, что бы он был в тему. В общемто сабж. По сути есть сервер, на котором кроме людей работают еще и боты "1С"... и бывает момент, что кто то из них "умирает". В дереве процессов есть несколько одноименных процессов 1Сv7.exe. А вот как опредилить, какой именно из них уже висит - непонятно. Естественно, что если бы меня интерисовл вопрос "рученоого воскрешения умершого" - я бы и не парился особо. но задача сделать это програмно. Вопрос: можно ли как то получить PID процесса 1C из пол ние самой, что б передать уго кудато дальше (не суть куда)? Заранее благодарен.
#1 by MiracMC
ам... немного не туда разместил... v7 собственно!
#2 by skunk
постараться победит причину умирания ботов и устранить
#3 by Irbis
Боты должны самоубилься делать после окончания работы, а не висеть по тыще лет.
#4 by dk
узнать-то можно, тока как ты заставишь "зависшие" процессы сообщать тебе их pid?
#5 by Сверчок
не-е-е, вопрос-то, на самом деле, весьма стоящий. разумеется, это тема далеко не "7.7", а вовсе даже "IT". но вопрос правильный. а именно -- вопрос получения статуса определённого процесса.
#6 by Кириллка
можно конечно. На мисте даже код пробегал от старого еврея, в котором используется получение PID'а
#7 by dk
угу, абрахамс красивое решение выкладывал через запуск процесса и возврат parentprocessid
#8 by dk
но таки это не решит проблему зависших
#9 by andrewks
старого? не боишься, что обидится?
#10 by Кириллка
копирайты его, а может MS :)
#11 by Кириллка
если бы спрашивал, как решить проблему зависающих процессов, то да. А так, человек задал конкретный вопрос, в ожидании получить конкретный ответ.
#12 by NS
Почему не решит? Решит. Пишешь батник, который рубит процессы работающие больше определенного времени. Его в шедулер. При запуске бота писать в файл PID и время запуска.
#13 by Skom
на script-coding.info много интересного найдешь
#14 by Skom
по адресу
#15 by andrewks
давно как перееехал
#16 by Kreont
боты "1С" запускай через шедулер с установкой максимального времени выполнения, тогда ОСь сама аго отрубит, неважно завис он или еще не доделал работу.
#17 by Skom
он сам разберется как ему ботов запускать может они постоянно висеть должны.
#18 by Torquader
А потом ТИИ базы ты за них делать будешь ? Процесс 1С должен завершаться корректно, если это возможно. P.S. процесс 1С очень редко виснет, а вот ошибка в обработке приводит к тому, что обработка завершается, а 1С просто висит и ждёт, когда кто-то нажмёт клавишу (и если она запустилась в отдельном DeskTop-е, то ждёт вечно). Но, можно использовать ОбработкаОжидания или DDE_Request, чтобы привести процесс "в чувство" и продолжить работу - а вы "догнать и убить" сразу.
#19 by MiracMC
- спасибо огромное... буду тестировать. - почти угодали суть. поясню... бота можно запустить и остановить.. не есть проблема... но вот незадача... боты у меня на "просторах" VMware живут.. у "Вари" есть проблема - переодичкая потеря коннекта к базе по сети... сам не знаю, или виртуальный адаптер дает сбой, или еще что то. ну и естественно процессы продолжают висеть в стадии "CodeBase Error"... тут уже все равно, закрою я их гуманно, или нет... всеравно прибегнуть к ТИИ  прийдется... но это уже другой вопрос. по сути есть у меня 10-ок ботов... все на одной машине... но падают как то странно.. не все... и не из за ошибок в базе. и перезапускать надо естетственно не всех... написа програмку, которая висит в трее и рубит/перезапусепнт процессы.. но надо PID того самого процесса... если описаное выше вернет правльный PID, то я его при запуске закину в файлик для каждого бота.. а потом просто туда же буду дописывать время работы... ну и прого рубит/перезапускать, если время больше, чем надо... протестирую завтра и отпишусь.. спасибо...
#20 by MiracMC
более подробно по сути ВАРИ изложил
#21 by MiracMC
- СПАСИБО ЕЩЕ РАЗ ОГРОМНОЕ!!! РАБОТАЕТ!!!!
#22 by Кириллка
ну ты это не мне спасибо, а абрахамсу - он постил этот код.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С