![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
debugg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
У меня такая проблема. Хочу узнать сколько времени проработал определенный процесс и если время больше заданного вырубить его. Задача вроде бы тривиальная и должна много где использоваться хотя в сети найти ничего стоящего не могу.
Процессы по заданному условию я отловил используя псевдо-файловую систему /proc. Там у каждого процесса есть дерриктория в которой лежит файлик stat содержащий все необходимые данные. Вот вопрос как определить какие из этих цифр являються временем работы процесса. Конкретно мне нужно поле START которое выводиться при комманде PS -eux, вернее его данные. Если кто сталкивался помогите плз... |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 9 Всего: 50 |
Можно, конечно, самому парсить /proc, но проще воспользоваться готовым модулем. Например
|
|||
|
||||
debugg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
эх если бы был Proc::ProcessTable был бы рай ))
у нас на фирме очень строго с подключением чего бы то ни было нового (( но все равно спасибо! |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 9 Всего: 50 |
Совсем несложно и /proc пропарсить. Надо только внимательно читать man proc. Вот:
|
|||
|
||||
debugg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
да спасибо большое все починил!!!
проблема была где взять данные Добавлено через 5 минут и 11 секунд starttime - proc/pid/stat элемент номер [21] ) boottime - proc/stat - btime ну и время сейчас time еще! нужно обязательно поделить starttiime на hz если не вдаваться в подробности то на 100 формула для вычисления времени работы процесса получаеться time_work_proc = time - boottime+(starttime/100) |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 9 Всего: 50 |
||||
|
||||
debugg |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
нет там все правильно starttime - это время прошедшее от старта системы ДО запуска процесса |
||||
|
|||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 9 Всего: 50 |
Именно так. man proc:
Это сообщение отредактировал(а) amg - 28.8.2007, 15:48 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |