Debian за Българи!

Всичко за Debian Gnu/Linux

psmisc: да разгледаме от близо стандартният пакет

Публикувано от tonitochev на април 4, 2008

Оригинал: «psmisc: a closer look to a standard package»

Източник:http://citkit.ru/articles/699/

Автор: Адриан фон Биддер (Adrian von Bidder)
Превод на руски:: Алексей Бешенов http://beshenov.ru

Превод: инж. Тони Тошев

 

 

 

Пакетът psmisc е инсталиран практически във всички системи Debian и Ubuntu и съдържа няколко малки програми, свързани с управление на Unix процесите: pstree, killall, fuser и peekfd. Следва кратко описание на тези полезни инструменти. Разбира се, всички познават killall и даже pstree, в пакета също така са fuser и peekfd, които за мен до скоро бяха новост.

 

killall е толкова ужасен, както и името му: той убива всички процеси с указаното име. По подразбиране се използва SIGTERM, но, разбира се, може да изпратите и други сигнали. Също така има опции за определяне на процеси с регулярни изрази или по групи. Обикновено аз използвам това за унищожаване на елементи на KDE чрез команда от рода на:

 

$ killall kio_imap4

Това се налага да го правя, защото при KMail има някои проблеми при работа с моя IMAP-сървър.

 

 

Добър поглед на това, какво е стартирано в системата, дава pstree. Ето част от изхода на програмата при мен:

 

$ pstree
init─┬─NetworkManager───2*[{NetworkManager}]
     ├─NetworkManagerD
     ├─acpid
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-cpuf
     │                    ├─hald-addon-dell
     │                    ├─hald-addon-inpu
     │                    └─hald-addon-stor
     ├─kdeinit─┬─artsd
     │         ├─2*[kio_file]
     │         ├─kio_http
     │         ├─3*[kio_imap4]
     │         ├─kioexec───wfica.sh───wfica
     │         ├─klauncher
     │         ├─konqueror
     │         ├─konsole───bash─┬─pstree
     │         │                └─xchat───{xchat}
     │         └─kwin
     ├─kdesktop───lineakd───2*[{lineakd}]
     ├─kdm─┬─Xorg
     │     └─kdm───startkde───kwrapper
     └─sshd

 

Опциите на pstree включват показване идентификаторите на процесите, потребителите и контекстът за безопасност SE Linux.

 

 

Fuser позволява да се установи, кой процес използва определен файл, например:

 

$ fuser -v /home/avbidder/.xsession-errors
                    USER        PID ACCESS COMMAND
/home/avbidder/.xsession-errors:
                    avbidder   4409 F.... startkde
                    avbidder   4533 F.... kdeinit
                    avbidder   4536 F.... dcopserver
                    avbidder   4538 F.... klauncher
                    avbidder   4540 F.... kded
                    avbidder   4547 F.... kwrapper
                    avbidder   4549 F.... ksmserver
                    avbidder   4550 F.... kwin
                    avbidder   4552 F.... kdesktop
                    avbidder   4554 F.... kicker
                    avbidder   4562 F.... artsd
                    avbidder   4567 F.... kmix
                    avbidder   4568 F.... konsole
                    avbidder   4572 F.... beagled
                    avbidder   4574 F.... lineakd
                    avbidder   4579 F.... knetworkmanager
                    avbidder   4680 F.... knotify
                    avbidder   4916 F.... kio_uiserver
                    avbidder   5706 F.... akregator
                    avbidder   5708 F.... kttsd
                    avbidder   5742 F.... kio_file
                    avbidder   5864 F.... beagled-helper
                    avbidder   6939 F.... konqueror
                    avbidder   7076 F.... konqueror
                    avbidder   7185 F.... kmail
                    avbidder   7696 F.... kio_imap4

 

Също така fuser може да праща сигнали към тези програми, така че може да ги убиете с помощта на :

 

fuser -k /home/avbidder/.xsession-errors

(по подразбиране се ползва SIGKILL, но това може да го променяте.)

 

 

 

Докато fuser е обичайният инструмент на системният администратор, peekfd осъществява по – дълбок контрол: той позволява да се види какво се случва с файловите дескриптори на процеса. Обърнете внимание на това, че peekfd го няма в Etch, необходимо е psmisc от Lenny или еще по ново.

 

Ако стартирате в терминал peekfd, командата ще прегледа всички дескриптори на процесите и ще изведе приблизително това:

 

 $ peekfd 7808

writing fd 1:
foo bar

Тук 7808 — просто cat >/dev/null в друг прозорец на терминала, и аз пиша там «foo bar».

 

И така, надявам се, че тази статия ще ви помогне да обърнете внимание на пакети, които сте инсталирали още от времето на Potato , но не сте се запознали по обстойно с тях..

Вашият коментар

XHTML: Може да използвате тези тагове: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>