Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение в top и ps 
:(
    Опции темы
Basteon
Дата 12.7.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Где почитать о том как выводятся имена процессов при запросе "top".
Может кто-нибуть писал что-то подобное?
 
PM MAIL   Вверх
Orthenner
Дата 12.7.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 22.5.2004
Где: Мытищи

Репутация: нет
Всего: нет



Вообще, в файловой системе proc можно найти всю информацию о процессах.
Каждый каталог, начинающийся с номера, соответствующего pid процесса, содержит всю информацию о пакете. Файлик cmdline, например, содержит команду, запустившую процесс с аргументами командной строки... 
PM MAIL ICQ   Вверх
Basteon
Дата 16.7.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Цитата

Вообще, в файловой системе proc можно найти всю информацию о процессах.
Каждый каталог, начинающийся с номера, соответствующего pid процесса, содержит всю информацию о пакете. Файлик cmdline, например, содержит команду, запустившую процесс с аргументами командной строки... 

Пожалуйста подробнее...

И ещё, где взять сам исходник top-а? 
PM MAIL   Вверх
Orthenner
Дата 17.7.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 22.5.2004
Где: Мытищи

Репутация: нет
Всего: нет



Вот пример по отображению запущенных процессов с аргументами...

Код

#include "stdio.h"
#include "dirent.h"
#include "string.h"
#include "sys/stat.h"
#include "sys/types.h"
#include "fcntl.h"
#include "unistd.h"
#include "stdlib.h"

int main(int argc, char** argv)
{
    DIR* dir;
    struct dirent* entry;
    struct stat st;
    char entry_path[PATH_MAX+1];
    char filename[PATH_MAX+1];
    int fd;
    size_t path_len;

    strncpy(entry_path,"/proc/",sizeof("/proc/"));
    path_len=strlen("/proc/");
    dir=opendir("/proc");
    while((entry=readdir(dir))!=NULL)
    {
        strncpy(entry_path+path_len, entry->d_name, sizeof(entry_path)-path_len);
        lstat(entry_path,&st);
        if(S_ISDIR(st.st_mode)&&atoi(entry->d_name)>0)
        {
            snprintf(filename,sizeof(filename),"/proc/%s/cmdline",entry->d_name);
            fd=open(filename,O_RDONLY);
            int num_read;
            char buf[1024];
            do
            {
                memset(buf, 0, 1024);
                num_read=read(fd,buf,1024);
                if(num_read>0) printf("%s",buf);
            }while(num_read>0);
            printf("\n");
        }
    }
    return 0;
}


По поводу исходника top... Поковыряй в инете исходнички atop, htop, mtop... на gentoo-portage.com должны быть  
PM MAIL ICQ   Вверх
GrayCardinal
Дата 17.7.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Orthenner, 
ftp://distfiles.gentoo.org/pub/gentoo/distfiles
Называется пакет procps
  

Это сообщение отредактировал(а) GrayCardinal - 17.7.2006, 16:45


--------------------
PM MAIL WWW   Вверх
Orthenner
Дата 17.7.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 22.5.2004
Где: Мытищи

Репутация: нет
Всего: нет



Угу... спасибо, теперь буду знать smile 
PM MAIL ICQ   Вверх
Basteon
Дата 18.7.2006, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Скачал procps-3.2.7.tar.gz
Там нашёл в procps-3.2.7/pc/HACKING
Такое:
global.c      Data + code to init it.

Но это судя по всему по pc, а вот по топ ничего что-то не нашёл.
Чего там можно поменять чтобы при ps ax|grep sh было не


Код

    5 ?        SW     0:00 [bdflush]
 1333 ?        S      0:00 /usr/sbin/sshd
 3033 ?        S      0:00 -bash
 3035 ?        S      0:00 -bash
 3234 ?        S      0:00 /bin/sh /usr/bin/startkde
 3706 ?        S      0:00 sshd: test [priv]
 3713 ?        S      0:00 sshd: test@notty
 3714 ?        S      0:00 -bash
 3736 ?        S      0:00 sshd: test [priv]
 3756 ?        S      0:00 sshd: test@pts/2
 3757 pts/2    S      0:00 -bash
 3786 pts/2    S      0:00 -bash

а

Код

    5 ?        SW     0:00 [bdflush]
 1333 ?        S      0:00 /usr/sbin/sshd
 3033 ?        S      0:00 -bash
 3035 ?        S      0:00 -bash
 3706 ?        S      0:00 sshd: test [priv]
 3713 ?        S      0:00 sshd: test@notty
 3714 ?        S      0:00 -bash
 3736 ?        S      0:00 sshd: test [priv]
 3756 ?        S      0:00 sshd: test@pts/2
 3757 pts/2    S      0:00 -bash
 3786 pts/2    S      0:00 -bash

Ну и тд... чтобы процессы те которые указать не отображались... 
PM MAIL   Вверх
GrayCardinal
Дата 18.7.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Эээ не. Лениво мне 3319 строк курочить. Да и квас кончился. Давай как-нить сам smile
gvim top.c
вперед и с песней... ну, можно с рамштайном, или с элвисом, кому как smile 


--------------------
PM MAIL WWW   Вверх
Basteon
Дата 18.7.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Ок, если чего спрошу... 
PM MAIL   Вверх
Basteon
Дата 19.7.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Хм, тут ещё мысля посетила...
А что в ядре процессами управляет, следит, ведёт статистику... где об этом почитать итд... 
PM MAIL   Вверх
GrayCardinal
Дата 19.7.2006, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Basteon, 
kernel/sched.c
Там еще штук (тысяч) десять строк. Что-то конкретное интересует ? smile 


--------------------
PM MAIL WWW   Вверх
Basteon
Дата 20.7.2006, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Собственно по ядру можно полную структуру... что гед и что за что отвечает, но пологаю что всё- это очень много можно остановиться на процессах, их управлении, а так же то из-за чего может возникнуть kernel-panic.

По top-у интеерсно откуад он берёт информацию о процессах. Это как то с ядром же связано?!
Да и ещё литературу какую-нибуть по програмированию для unix(в том же плане). 
PM MAIL   Вверх
GrayCardinal
Дата 20.7.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Basteon, 
Ууу... Ну литературы то уж расплодилось. Единственное что могу порекомендовать, это
Linux Device Driver O'reilly (кажись правильно написал, книжка лежит под GPL на www.oreilly, только домен забыл smile )

Насчет кодинга под никсы. Да там... Нужно GVim (7.x), gcc (4.x), AAP (www.a-a-p.org) и можно лезть в 
/usr/share/man/man2
Там всё smile Если линь, то там даже написано про совместимость с другими *nix. 

Насчет AAP'а. Чтоб со старичками make'ами не заморачиваться можно одну строчку написать
:program test : main.cpp ...
и 
$ aap
И ноупроблем. аапчик так же установит, удалит, сконфигурит, в общем нужная вещь smile

Еще книжка - Брюс Моли "Unix/Linux Теория и практика программирования". Ничего круче пока не встречал. В сетке правда не видел smile

ЗЫ
рекламу ААПа толкаю, ибо, ИБО достало с ./configure и libtool всякими возиться smile
 


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.