The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Получение имени процесса по его PID, !*! PoizOn, 21-Мрт-05, 15:26  [смотреть все]
Решил написать (просто для себя) Диспетчер задач (аля Windows) но для никсов на Perl  c красивым GUI. Как получить PID всех процессов понятно (ls /proc) но вот как получить имена этих процессов? Я не хотел бы использовать ps и парсить ее вывод (считаю не очень красивым решением) - может есть какой-нить модуль для работы с процессами (получение PID, имени и прочих атрибутов) на Perl или вообще встроенные средства самого языка?
  • Получение имени процесса по его PID, !*! zvd, 16:41 , 21-Мрт-05 (1)
    так там же, в /proc все и есть
    • Получение имени процесса по его PID, !*! PoizOn, 16:44 , 21-Мрт-05 (2)
      >так там же, в /proc все и есть
      Нашел. Это
      Proc::ProcessTable модуль: вот вывод какой к примеру может дать:
      PID    TTY        STAT     START                    COMMAND
      61741  /dev/ttyp2 nochan   Mon Mar 21 16:43:56 2005 perl test.pl
      61738  /dev/ttyp1 ttyin    Mon Mar 21 16:42:55 2005 more /tmp/perldoc1.61731
      61731  /dev/ttyp1 wait     Mon Mar 21 16:42:55 2005 /usr/bin/perl /usr/bin/perldoc Proc::ProcessTable
      61485  /dev/ttyp2 pause    Mon Mar 21 16:17:10 2005 /bin/csh
      61415             poll     Wed Dec 31 23:59:59 1969 kdeinit: kio_file file /tmp/ksocket-poizon/klauncherzKVVJA.slave-socket /tmp/ksocket-poizon/krusaderyLzxwQ.slave-socket
      61313  /dev/ttyp1 pause    Mon Mar 21 14:31:31 2005 _su
      58823             poll     Mon Mar 21 12:34:06 2005 kdeinit: kio_uiserver
      54883  /dev/ttyp0 select   Mon Mar 21 10:32:56 2005 centericq
      54839             poll     Mon Mar 21 10:02:57 2005 ./mozilla-bin

      А использование простое как стакан :-):

      my $FORMAT = "%-6s %-10s %-8s %-24s %s\n";
              $t = new Proc::ProcessTable;
              printf($FORMAT, "PID", "TTY", "STAT", "START", "COMMAND");
              foreach $p ( @{$t->table} ){
                printf($FORMAT,
                       $p->pid,
                       $p->ttydev,
                       $p->state,
                       scalar(localtime($p->start)),
                       $p->cmndline);
              }

      Всем пасиб :-)


  • Получение имени процесса по его PID, !*! ACCA, 01:16 , 23-Мрт-05 (3)
    >Решил написать (просто для себя) Диспетчер задач (аля Windows) но для

    А ты не пробовал нажать Ctrl+Esc в KDE?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру