![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
Всем привет!
Пишу скрип который отслеживает работу нужных мне процессов, так вот столкнулся с такой проблемой, а как реализовать с несколькими процессами. С одним делаю так:
Поделитесь своими соображениями, плиз!!! |
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
Народ, ну поделитесь мысля
|
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
есть кто живой
|
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
для начала скрип писАть переставай. начинай программы.
есть модуль psutil а для многозадачности есть потоки, процессы... -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
системным администратором работаю, поэтому пока только скрипты, а за ответ спасибо!!!
|
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
отмазка не засчитана. скрипт - это тоже программа. и относиться надо соответственно - планировка, организация, и ревью и т.д. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
точнее, что не так в моем скрипте?
Это сообщение отредактировал(а) larinva - 7.4.2011, 08:01 |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: нет Всего: 10 |
1. что значит несколько процессов? если для например bash и sh - почему не вызвать два раза для разных (цикл типо) 2. почему не использовать pgrep? |
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
alexvs11, чем же в данной ситуацииps хуже pgrep, тут уж дело вкуса кто к чему привык. Зачем два цикла если можно сделать в одном
Для тех кому не понятно
загляните сюда http://www.freebsd.org/doc/ru/books/handbo...-processes.html Это сообщение отредактировал(а) larinva - 8.4.2011, 07:47 |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: нет Всего: 10 |
||||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
я вообще, то обратился сюда за советом, а не для издевок подобного рода
|
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
с т.з. количества системных процессов psutil работает с /proc, т.е. в одном процессе python.
это дешевле чем делать конвееры, ведь для мониторинга нередко хочется знать статус процесса, и др. данные (когда родился и т.д.). запуск из питона такого чуда будет включать в себя: python, shell, ps, grep, cut, etc. Добавлено @ 16:50 баг же. сценарий: 1. имя процесса апача: httpd. 2. имя пользователя, под которым апач бежит: httpd 3. под этим пользователем бежит какой-то долгий cron job, для анализа логов, их переноса и т.д. и в командной строке присутствует параметр httpd. крон запускает задачу в 2:00 ночи. в 1:59 процесс апача умер. в 2:30 твой скрипт обнаруживает процесс по формуле.... и ты не узнаешь что апач умер, пока первый пользователь не позвонит в тех-поддержку. Это сообщение отредактировал(а) bilbobagginz - 9.4.2011, 16:51 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
Спасибо bilbobagginz, за подробное разъяснение, как же тогда должен выглядеть скрипт с использование psutil, если не сложно скиньте примерчик
Это сообщение отредактировал(а) larinva - 13.4.2011, 13:45 |
|||
|
||||
| bilbobagginz |
|
||||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
т.е. для начала - импорт модуля
для безопасности от race по процессам надо гулять при помощи psutil.process_iter() при запросе о процессах ты получаешь элемент класса Process. которой описывает данные о процессе из таблицы процессов. выбор надо делать по нужным тебе параметрам, т.е. комбинации: имени пользователя и имени процесса (или другим данным, как тебе надо) разница с грепом вопиюща: когда ты делаешь греп, то поиск идет по всем словам строки. тут у тебя полный контроль. как в бд. напр. если тебе надо сделать "выборку" типа cmdline - запуск апача, который принадлежит www-data, то:
остальное - кого убивать и т.д., это уже думай сам. читай доки функций psutil, там есть всё что тебе надо. Это сообщение отредактировал(а) bilbobagginz - 29.4.2011, 11:14 -------------------- Я ещё не демон. Я только учусь. |
||||||
|
|||||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
запускаю этот скрипт в FreeBsd 8.1 выводит процессы
А если запускаю в FreeBsd6.2 то вот это Traceback (most recent call last): File "./_proc.py", line 23, in <module> names = set(x.name for x in psutil.get_process_list()) File "./_proc.py", line 23, in <genexpr> names = set(x.name for x in psutil.get_process_list()) File "/usr/local/lib/python2.6/site-packages/psutil/__init__.py", line 162, in name name = self._platform_impl.get_process_name() File "/usr/local/lib/python2.6/site-packages/psutil/_psbsd.py", line 72, in wrapper raise NoSuchProcess(self.pid, self._process_name) psutil.error.NoSuchProcess: process no longer exists (pid=34284) подскажите что нужно сделать чтобы от этого избавиться |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |