 | Уровень сложности: простой Мартин Браун (Martin C. Brown) , Внештатный автор и консультант компании MCslp, Свободный писатель
30.04.2009 В статье рассказывается, как получить требуемую информацию о UNIX®-процессах. Знание процессов, которые выполняются в данный момент на системе, необходимо для любого системного администратора. Стандартное отображение списка выполняемых процессов достаточно полезно, но иногда информация в нем отображается в неудобном для чтения формате или не содержит сведений об интересующих администратора процессах. Умение выбирать из списка процессов только интересующие данные упрощает администрирование. В этой статье будет рассмотрено, как настраивать представление списка процессов, чтобы повысить его читабельность, и как обобщать информацию в списке, чтобы получить информацию, которая недоступна другими способами. Также будут рассмотрены некоторые стандартные методы получения информации о процессах, одинаковые для всех UNIX-платформ.
Об этой серии статей
Любой администратор операционной системы UNIX® регулярно применяет стандартные утилиты, команды и сценарии для различных задач. Часть из этих инструментов поставляется вместе с операционной системой, но приемы их эффективного использования администратор накапливает постепенно вместе с опытом работы и желанием системных администраторов облегчить себе жизнь. Этот цикл статей сфокусирован на изучении самых лучших инструментов для UNIX, включая методы упрощения процесса администрирования в гетерогенной среде.
Использование команды ps
Команда ps выводит список выполняющихся процессов. Эта команда существует во всех версиях UNIX и на большинстве ОС работает по схожему механизму – запрашивает у ядра список выполняемых процессов и затем выводит список этих процессов и их свойств, например, потребление памяти, время выполнения и прочие детали.
Утилита ps весьма функциональна, хотя многие администраторы, наверное, пользуются только одной или двумя из возможных опций для получения необходимой им информации. При помощи этой команды можно получить больше информации, если пользоваться встроенными в нее опциями командной строки или комбинировать ps с другими командами при помощи каналов для получения нужной информации.
Получение списка всех процессов
Стандартный вывод команды ps покажет только список процессов, запущенных именно этим пользователем, даже если зайти как пользователь root. В зависимости от того, основан ли UNIX на BSD или AT&T SysV, ОС изменяет основные опции командной строки, которые используются для получения информации либо изменяет уже отображенную информацию. В BSD UNIX выводимая информация составляется из идентификатора процесса (process ID), терминала, статуса, времени (время в секундах выполнения процессора на CPU, а не время начала работы процесса) и исполняемой команды, как показано в листинге 1.
Листинг 1. Список процессов на системе BSD
$ ps
PID TT STAT TIME COMMAND
391 p5 S 0:00.24 /bin/bash
9165 p5 S+ 0:00.50 emacs
476 p6 S 0:01.03 /bin/bash
9299 p6 S 0:00.09 xterm
9319 p6 S 0:00.07 xterm
9423 p6 S 0:00.12 ftp atuin
9513 p6 R+ 0:00.01 ps
9301 p7 Ss+ 0:00.01 /usr/X11R6/bin/luit
9302 p8 Ss+ 0:00.03 bash
9321 p9 Ss+ 0:00.01 /usr/X11R6/bin/luit
9322 pa Ss+ 0:00.02 bash
|
Для среды SVR4 будет выведено меньше колонок (не будет статуса процесса), как показано в листинге 2.
Листинг 2. Список процессов на системе UNIX SVR4
$ ps
PID TTY TIME CMD
19915 pts/3 00:00:00 bash
29145 pts/3 00:00:00 emacs
32256 pts/3 00:00:00 emacs
26986 pts/3 00:00:00 xterm
31303 pts/3 00:00:00 ftp
31358 pts/3 00:00:00 ps
|
Для получения списка всех процессов, выполняющихся на системе, необходимо использовать различные опции командной строки, применимые для той UNIX-системы, с которой ведется работа. Для BSD UNIX опция -a выведет список всех процессов, включая процессы самого пользователя. Однако список все еще не будет включать в себя процессы без управляющего терминала (например, те, что были запущены во время загрузки, демоны и те процессы, которые выполняются как часть задачи для cron). Для получения списка всех выполняемых процессов используется опция -A (листинг 3).
Листинг 3. Список всех процессов на системе BSD
$ ps -A
PID TT STAT TIME COMMAND
1 ?? S<s 0:15.47 /sbin/launchd
23 ?? Ss 0:00.02 /sbin/dynamic_pager -F /private/var/vm/swapfile
27 ?? Ss 0:00.95 kextd
49 ?? Ss 0:05.17 /usr/sbin/configd
50 ?? Ss 0:01.89 /usr/sbin/coreaudiod
51 ?? Ss 0:04.40 /usr/sbin/diskarbitrationd
52 ?? Ss 0:00.08 /usr/sbin/memberd -x
53 ?? Ss 0:02.80 /usr/sbin/securityd
55 ?? Ss 11:03.59 /usr/sbin/notifyd
57 ?? Ss 0:01.13 /usr/sbin/DirectoryService
...
8051 p2 S+ 0:00.61 ssh root@bear
292 p3 Ss 0:00.02 bash
372 p3 S+ 0:00.42 ssh admin@atuin
312 p4 Ss+ 0:00.03 bash
332 p5 Ss 0:00.03 bash
391 p5 S 0:00.24 /bin/bash
9165 p5 S+ 0:00.50 emacs
352 p6 Ss 0:00.04 bash
476 p6 S 0:01.04 /bin/bash
9299 p6 S 0:00.09 xterm
9319 p6 S 0:00.07 xterm
9423 p6 S 0:00.14 ftp atuin
9520 p6 R+ 0:00.01 ps -A
9301 p7 Ss+ 0:00.01 /usr/X11R6/bin/luit
9302 p8 Ss+ 0:00.03 bash
9321 p9 Ss+ 0:00.01 /usr/X11R6/bin/luit
9322 pa Ss+ 0:00.02 bash
|
Опция командной строки -A является эквивалентом комбинации опций -a и -x, где опция -a показывает процессы с управляющими терминалами, а -x показывает процессы без управляющего терминала.
Для среды на основе SVR4 следует использовать опцию –e; эта опция показывает все выполняющиеся процессы, вне зависимости от того, есть у них управляющий терминал или нет. Данная опция является эквивалентом опции -A в BSD. Листинг 4 иллюстрирует использование этой опции.
Листинг 4. Список процессов в SVR4
$ ps -e
PID TTY TIME CMD
0 ? 15:24 sched
1 ? 0:00 init
2 ? 0:00 pageout
3 ? 0:00 fsflush
308 ? 0:00 devfsadm
7 ? 0:06 svc.star
9 ? 0:10 svc.conf
506 ? 0:00 htt_serv
260 ? 0:00 rpcbind
259 ? 0:00 cron
52 ? 0:00 dhcpagen
282 console 0:00 ttymon
267 ? 0:00 lockd
264 ? 0:00 statd
90 ? 0:00 sysevent
...
462 ? 0:00 smcboot
464 ? 0:00 smcboot
463 ? 0:00 smcboot
473 ? 0:00 htt
552 ? 0:00 in.telne
527 ? 0:00 dmispd
548 ? 0:01 snmpd
|
Информация, выводимая всеми этими командами, отличается от столбцов с данными, которые отображаются, но при необходимости можно указать, какую информацию выводить.
Настройка представления данных в списке процессов
Утилита ps содержит множество стандартных наборов столбцов, которые можно отобразить. Например, для SVR4 принято использовать ps -ef для вывода более подробной информации о процессах в списке, включая идентификатор родительного процесса (parent process ID), нагрузку на процессор, время запуска и более подробную информацию о команде, запустившей его (листинг 5).
Листинг 5. Подробная информация
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 15:56:26 ? 15:24 sched
root 1 0 0 15:56:26 ? 0:00 /sbin/init
root 2 0 0 15:56:26 ? 0:00 pageout
root 3 0 0 15:56:26 ? 0:00 fsflush
root 308 1 0 15:57:09 ? 0:00 devfsadmd
root 7 1 0 15:56:29 ? 0:06 /lib/svc/bin/svc.startd
...
root 562 1 0 15:58:17 ? 0:00 /usr/lib/sendmail -bd -q15m
root 576 555 1 16:01:47 pts/1 0:00 ps -ef
root 416 1 0 15:57:14 ? 0:00 /usr/sbin/syslogd
smmsp 561 1 0 15:58:17 ? 0:00 /usr/lib/sendmail -Ac -q15m
...
root 552 283 0 15:57:47 ? 0:00 /usr/sbin/in.telnetd
root 527 1 0 15:57:22 ? 0:00 /usr/lib/dmi/dmispd
root 548 1 0 15:57:24 ? 0:01 /usr/sfw/sbin/snmpd
|
Для BSD имеется опция -l, которая предоставляет подробную информацию о каждом процессе, как показано в листинге 6.
Листинг 6. Отображение подробностей о процессе в BSD
$ ps -al
UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
0 9165 391 0 31 0 57896 6376 - S+ p5 0:00.50 emacs
501 352 349 0 31 0 27784 52 - Ss p6 0:00.04 bash
0 476 352 0 31 0 27784 600 - S p6 0:01.05 /bin/bash
0 9299 476 0 31 0 44988 1880 - S p6 0:00.09 xterm
0 9319 476 0 31 0 44988 1888 - S p6 0:00.07 xterm
0 9423 476 0 31 0 27504 488 - S p6 0:00.15 ftp atuin
0 9540 476 0 31 0 27384 504 - R+ p6 0:00.01 ps -axl
0 9301 9299 0 31 0 27332 452 - Ss+ p7 0:00.01 /usr/X11R6/bin/luit
0 9302 9301 0 31 0 27784 888 - Ss+ p8 0:00.03 bash
0 9321 9319 0 31 0 27332 452 - Ss+ p9 0:00.01 /usr/X11R6/bin/luit
0 9322 9321 0 31 0 27784 888 - Ss+ pa 0:00.02 bash
|
Проблема с этими опциями состоит в том, что хотя они предоставляют больше информации, эта информация не всегда полезна и мешает при поиске конкретного процесса.
К счастью, все версии ps также содержат возможность задавать отображаемые столбцы. Можно использовать эту возможность для получения только необходимой информации, а в гетерогенных средах можно создавать стандартизованный вывод для различных UNIX-систем.
Для того чтобы использовать эту особенность, применяется опция -o со списком колонок, отделенных друг от друга запятыми, которые нужно отобразить. Хотя есть различия между наборами доступных для использования столбцов, многие из них одинаковы для всех UNIX-версий. Например, pid, ppid (parent pid), command, RSS (resident set size or memory usage – использование памяти) и столбец приоритетов доступны для всех UNIX ОС.
На практике можно использовать опцию -o для выбора столбцов и для упорядочивания процесса отображения информации. Например, для BSD для получения pid, ppid и command следует использовать -opid,ppid,command, как показано в листинге 7, или -opid,ppid,comm для SVR4, как показано в листинге 8.
Листинг 7. Задание отображаемых столбцов в BSD
$ ps -o pid,ppid,command
PID PPID COMMAND
391 332 /bin/bash
9165 391 emacs
|
Листинг 8. Задание отображаемых столбцов в SVR4
$ ps -opid,ppid,comm
PID PPID COMMAND
555 552 -sh
622 555 ps
|
После выбора необходимых столбцов можно указать критерий, по которому необходимо отсортировать полученную информацию. По умолчанию ps сортирует список процессов по идентификатору процесса (process ID), но в таком списке трудно отыскать нужную информацию. При поиске процессов, интенсивно потребляющих память, было бы полезным упорядочить список всех процессов по степени использования ими памяти, а не по их идентификатору.
Некоторые версии ps для этой цели имеют соответствующую опцию. BSD-системы сортируют список процессов по уровню использования памяти опции при помощи опции -m или по использованию CPU при помощи опции -r. Многие системы на основе SVR4 не имеют специальной опции для решения этой задачи, но его можно получить, причем оно будет одинаковым для BSD и SVR4, комбинируя ps с sort. Например, для получения списка процессов, отсортированного по степени использования CPU, в среде BSD используется команда, представленная в листинге 9.
Листинг 9. Сортировка по нагрузке на CPU в BSD
$ ps -A -o pid,%cpu,command|sort -n +1
...
358 0.1 ftp
11425 0.1 /bin/bash
28684 0.3 trivial-rewrite -n rewrite -t unix -u
356 0.4 ssh
354 0.5 as
23988 1.1 emacs
136 14.6 cc1plus
26306 23.6 cpp
|
Для SVR4 необходимо изменить %cpu на pcpu, но в остальном команда идентична (листинг 10).
Листинг 10. Сортировка по нагрузке на CPU в SVR4
$ ps -e -opid,pcpu,comm|sort -n +1
...
3 0.1 fsflush
555 0.1 -sh
627 0.2 sort
628 0.2 ps
|
В этих последовательностях команд сначала определяются столбцы, которые нужно отобразить, а затем для получения нужной информации можно отсортировать данные в этих столбцах. Ниже представлены команды для поиска процессов по другим критериям.
Вывод определенных процессов
Как только будет получен список выполняемых процессов, возможно, понадобится показать только некоторые процессы из этого списка. Простой способ сделать это – скомбинировать вывод ps с grep для извлечения необходимой информации. На некоторых UNIX-системах для выполнения этой задачи может быть представлена специальная утилита, например, pgrep, однако зачастую для поиска каких-то определенных команд бывает достаточно применения grep:
Команда ps также поддерживает отображение процессов согласно более точным критериям, например, идентификатор пользователя (user ID), родительский процесс или управляющий терминал. Например, опция -U выбирает из списка процессы определенного пользователя. Для отображения процессов, принадлежащих администратору, можно воспользоваться командой из листинга 11.
Листинг 11. Просмотр процессов определенного пользователя
$ ps -U root
PID TTY TIME CMD
0 ? 15:24 sched
1 ? 0:00 init
2 ? 0:00 pageout
3 ? 0:02 fsflush
308 ? 0:00 devfsadm
7 ? 0:06 svc.star
...
552 ? 0:00 in.telne
527 ? 0:00 dmispd
629 pts/1 0:00 ps
548 ? 0:01 snmpd
|
Для получения всех процессов, выполняющихся на конкретном терминале, используется опция -t, как показано в листинге 12.
Листинг 12. Список процессов, выполняющихся на конкретном терминале
$ ps -t 3
PID TTY TIME CMD
19915 pts/3 00:00:00 bash
29145 pts/3 00:00:00 emacs
32256 pts/3 00:00:00 emacs
|
Как только будет получена эта информация, может возникнуть необходимость произвести некоторые операции с этими процессами.
Отправка сигналов процессам
Одна из команд, которая выполняется наиболее часто после получения списка необходимых процессов, – это команда kill. Она посылает одному или более процессам определенный сигнал. В случае, если демон запустил несколько потоков или дочерних процессов, можно попытаться отправить сигнал родительскому процессу, чтобы тот просигнализировал дочерним процессам. Однако такой метод может не работать с некоторыми демонами и приложениями.
Естественно, что администратор будет стараться не прибегать к ручному завершению процессов. Некоторые UNIX-системы поставляются с инструментом, названным pkill, который может посылать один и тот же сигнал процессам, совпадающим с каким-нибудь шаблоном или удовлетворяющим определенным критериям, например, какой-либо список определенных терминалов, идентификаторов пользователей, идентификаторов групп.
Осуществить отправку сигнала процессам, соответствующим какому-либо заданному шаблону, можно комбинируя команды ps, grep, awk, xargs и kill. Например, для отправки сигнала kill всем процессам со "httpd" в их команде можно использовать:
$ ps -e -opid,command |grep httpd|awk '{print $1}'|xargs kill -9
|
Команду выше проще понять, если она разбита на несколько частей:
Эта часть выводит список всех выполняющихся процессов (этот пример для SVR4-систем, для BSD-систем используется -A). При этом отображаются только столбцы process ID и command (команда, которая выполняется). Нет необходимости в более детальной информации, поскольку она может представлять собой ненужный текст, который может совпасть с шаблоном для поиска.
$ ps -e -opid,command |grep httpd
|
Данная команда извлекает только процессы, которые имеют httpd в имени команды (другим выводимым столбцом является process ID):
$ ps -e -opid,command |grep httpd|awk '{print $1}'
|
При использовании awk осуществляется фильтрация выводимой информации, при этом будет выводиться только первый аргумент – идентификатор процесса (process ID):
$ ps -e -opid,command |grep httpd|awk '{print $1}'|xargs kill -9
|
Команда xargs берет отделенные друг от друга элементы (отделенные символом конца абзаца, табуляцией, пробелами) и форматирует их как список аргументов на вход другой команде (в данном случае – kill).
Лучше всего поместить эту команду целиком в сценарий с подходящим именем (pkill или killbyname). Можно сделать так, чтобы сценарий принимал два аргумента – сигнал и текст, с которым нужно искать совпадения, а также внести в сценарий код, который позволял бы учитывать ОС, с которой ведется работа(листинг 13).
Листинг 13. Завершение процессов при помощи командной строки
#!/bin/sh
HOSTTYPE=`uname -s`
SIGNAL=$1
STRING=$2
if [ -z "$1" -o -z "$2" ]
then
echo Usage: $0 signal string
exit 1
fi
case $HOSTTYPE in
Darwin|BSD)
ps -a -opid,command | grep $STRING | awk '{ print $1; }' | xargs kill $SIGNAL
;;
Linux|Solaris|AIX|HP-UX)
ps -e -opid,command | grep $STRING | awk '{ print $1; }' | xargs kill $SIGNAL
;;
esac
|
Те же приемы могут применяться и в других подобных ситуациях.
Расчет загруженности памяти
Инструмент ps предоставляет два столбца, которые еще не были рассмотрены. RSS-колонка предоставляет "постоянно занимаемую память" ("resident set size") процесса; RSS показывает количество физической памяти, используемой процессом и является индикатором количества оперативной памяти потребляемой данным процессом. Колонка VSZ показывает общее количество памяти, используемое процессом, включая ту память, которая была отведена под внутреннее хранилище данных процесса или отдана под swap-пространство. Наличие этих колонок характерно для распространенных версий ps.
Данные из этих колонок дают четкую картину использования памяти. Если комбинировать команду ps с grep для выбора конкретных процессов и awk для подсчета общих показателей, то можно получить наглядные данные о том, сколько физической и виртуальной памяти использовалось приложением или приложением и его дочерними приложениями.
Например, для определения количества физической и виртуальной памяти, используемой процессом bash, можно применить команду из листинга 14.
Листинг 14. Вычисление степени использования памяти при помощи ps и awk
$ ps -A -o rss,vsz,command|grep bash | \
awk '{rss += $1; vsz += $2 } END { print "Real: ",rss, "Virtual: ",vsz }'
Real: 4004 Virtual: 305624
|
Данная методика может пригодиться при диагностике проблем с использованием памяти и использованием пространства для свопинга.
Использование оболочки с возможностью управления задачами
Для системного администратора выполнение двух различных задач одновременно – это обычная ситуация. Также возможно наличие нескольких открытых соединений с сервером – эти соединения могут быть открыты как несколько окон терминала (например, через xterm) или другие терминалы, или удаленный доступ через SSH или Telnet, поэтому могут возникнуть ситуации, когда из активной оболочки понадобится одновременно контролировать или отслеживать несколько процессов.
Все оболочки поддерживают возможность автоматического запуска команды в фоновом режиме путем добавления амперсанда (&) к концу команды. Но иногда может понадобиться поместить интерактивное приложение, например редактор, в фоновый режим, так, чтобы при необходимости можно было выполнить команду в оболочке, а потом вернуться в сеанс редактора.
Возможность контролировать этим способом фоновые процессы называется управлением задачами (job control) и является встроенной возможностью оболочек Korn и C, а также оболочек с открытым исходным кодом типа bash и zsh.
Для базового управления задачами в оболочке, каждый раз при запуске команды на выполнение в фоновом режиме, команде (любая управляющая последовательность для командной строки, например, встроенные сценарии) задается идентификатор задачи (job reference ID).
$ find / -name "core" >/tmp/corelist 2>&1 &
[3] 11957
|
Список задач, выполняемых в фоновом режиме, можно получить при помощи команды jobs, как показано в листинге 15.
Листинг 15. Использование команды jobs
$ jobs
[1]- Stopped emacs MCSLP/Intranet/News.pm
[2]+ Stopped emacs MCSLP/Intranet/Media.pm
[3] Running find / -name "core" >/tmp/corelist 2>&1 &
|
В этом примере вторая команда emacs отмечена знаком "+". Это означает, что оболочка считает, что эта задача в данный момент активна. Команда find, запущенная перед emacs, не считается активной, поскольку не требует взаимодействия (хотя она и генерирует информацию, она не требует ввода каких-либо дальнейших команд), и, следовательно, не является активным процессом. Знак "-" у первого процесса emacs обозначает, что оболочка считает эту задачу предшествующей активной командой. Обратиться к этим задачам можно при помощи опций %+ и %- соответственно.
Сделать любой из этих процессов активным можно при помощи команды fg, в которой надо указать номер задачи или одну из параметрических строк задачи (%+, %-). Если опустить ссылку, оболочка переключится на текущую активную задачу.
Чтобы приостановить выполнение процесса, необходимо нажать сочетание клавиш Control-Z. Также можно воспользоваться командой:
ftp>
[3]+ Stopped ftp atuin
|
Подобный подход должен сработать для большинства команд и приложений. Он также должен работать для наиважнейших простых команд, которые запускаются в оболочке, например, ls или find. Заметьте, что задача отмечена как Stopped (остановлена). Это означает, что выполнение команды было временно прервано. Для переключения команды в фоновый режим работы используется команда bg. Как fg, bg принимает в качестве аргумента ссылку на задачу (job reference) или, по умолчанию без аргументов, переключит в фоновый режим текущий активный процесс. Если команда интерактивная, т.е. требует ввода информации (редактор, FTP и прочее), то при выполнении команды bg будет выведено предупреждение о том, что процесс временно приостановлен (листинг 16).
Листинг 16. Предупреждение о том, что процесс был временно приостановлен
$ bg
[3]+ ftp atuin &
$
[3]+ Stopped
|
Отметим, что если команда, выполняющаяся в фоновом режиме, генерирует какую-либо информацию в стандартный вывод и этот вывод не был перенаправлен, то информация в этом выводе отобразится на экране, даже если эта команда была переведена в фоновый режим работы посредством управления задачами.
В загруженных средах управление задачами становится одним из простейших путей контроля многочисленных фоновых задач или используется для быстрого перехода из различных редакторов и других команд в активную оболочку (вместо того чтобы запускать новую оболочку).
 | |
Иногда, при работе из-под пользовательской учетной записи или в режиме восстановления UNIX-системы, может понадобиться получить доступ к оболочке управления задачами или к какой-либо другой оболочке или команде. В таком случае необходимо удостовериться, что статически связанная копия оболочки доступна внутри одного из каталогов с исполняемыми файлами (binary directories), например /bin или /sbin (этот каталог специально предназначен для статически связанных файлов приложений). Это гарантирует, что оболочка будет доступна даже в том случае, когда вторичная файловая система не будет загружена.
|
|
Гарантированное выполнение процессов в фоновом режиме
Иногда может понадобиться запустить сценарий, утилиту или командную строку на выполнение в фоновом режиме. Однако большинство систем завершит выполнение команды в случае, если пользователь отключится от ОС или выйдет из системы, что будет нежелательно, если требуется только войти в систему, запустить команду и выйти из ОС.
Такое завершение процессов окажется неэффективным, если потом придется перезапускать или повторно инициализировать фоновые процессы или процессы-демоны, которые не делают этого автоматически, или которые зависят от какого-то стартового сценария, который запускает эти процессы и управляет ими. Сценарий MySQL mysqld_safe является примером сценария, работающего подобным образом.
Чтобы предотвратить автоматическое завершение работы приложения в момент выхода пользователя из системы, следует использовать команду nohup как префикс к команде или утилите, которую надо запустить:
Пока вывод команд не будет специально перенаправлен, nohup будет автоматически записывать поток стандартного вывода и стандартной ошибки в файл nohup.out в текущем каталоге.
Вывод можно перенаправить в какой-либо файл используя стандартное перенаправление, но перенаправлять надо одновременно поток вывода и поток ошибки, например:
$ nohup find/ -name core >/tmp/corefind.out 2>&1
|
Я заметил, что почти автоматически использую nohup для запуска любой команды, чья работа, как я предполагаю, продлится дольше двух-трех минут. Думаю, что моя привычка обусловлена скорее возможностью автоматически перенаправлять вывод, нежели возможностью не прерывать работу приложения в случае разрыва соединения или выхода из системы.
Заключение
Применение приемов, описанных в этой статье, дает возможность быстро найти UNIX-процессы и информацию о них. Если приходится работать в гетерогенной среде, то можно использовать опции для оптимизации представления данных, генерируемых командой, и для легкого поиска нужных процессов.
Ресурсы Научиться
- System Administration Toolkit: Process administration tricks: оригинал статьи (EN).
- Учебник от IBM про AIX®, предназначенный для администраторов Sun Solaris, в котором описаны различия между администрированием AIX и Solaris. Прочитать эту книгу можно на сайте IBM Redbooks.(EN)
- System Administration Toolkit: другие статьи этого цикла.
- HP-UX 11i System Administration Handbook and Toolkit (Настольная книга системного администратора HP-UX 11i) (EN) (Marty Poniatowski) (Prentice Hall PTR, ISBN: 0-13-060081-3) содержит информацию не только о HP-UX, но и об отличиях этой ОС от других вариантов UNIX.
- Bash (EN): оболочка, альтернативная стандартной оболочке Борна (Bourne shell) с таким же синтаксисом, но с расширенным числом возможностей, использованием псевдонимов, управлением задачами и автоматической подстановкой полных имен файлов и каталогов.
- Zsh (EN): предоставляет схожие с Bash возможности, но, кроме того, включает механизм для расширения возможностей некоторых элементов оболочки, включая автоматическую подстановку полного имени.
- Статьи про AIX® и UNIX: другие статьи, написанные Мартином Брауном.(EN)
-
Разделы библиотеки информации по AIX и UNIX:(EN)
-
AIX и UNIX: в разделе AIX and Unix developerWorks размещена различная информация по всем аспектам системного администрирования AIX, которая поможет лучше изучить UNIX.(EN)
-
Новичок в AIX и UNIX: посетите страницу AIX и UNIX для начинающих, чтобы узнать больше о AIX и UNIX.(EN)
-
AIX 5L™ Wiki: среда сотрудничества по подготовке документации AIX.
-
Safari bookstore: посетите эту интернет-библиотеку технической информации.(EN)
-
developerWorks technical events and webcasts:будьте в курсе webcast-конференций и технических событий сообщества developerWorks.(EN)
-
Podcasts: оставайтесь на связи с техническими экспертами IBM.(EN)
Получить продукты и технологии
-
IBM trial software: создайте приложение при помощи программного обеспечения, загруженного со страниц сообщества developerWorks.(EN)
Обсудить
Об авторе  | |  | Мартин Браун – бывший руководитель IT подразделения с опытом работы в области межплатформенной интеграции. Обладая большим опытом разработчика, он создал динамические сайты для множества крупных клиентов, включая HP и Oracle, и на данный момент является техническим директором ресурса Foodware.net. В настоящее время Мартин в качестве внештатного автора и консультанта сотрудничает с корпорацией Microsoft, работает редактором (LAMP Technologies Editor) журнала LinuxWorld, является видным членом группы AnswerSquad.com. Его перу принадлежат книги на совершенно разные темы: от сертификации Microsoft, компьютеры iMac до программирования открытого исходного кода. При всем этом он продолжает плодотворно работать в области программирования для разных платформ и сред. Связаться с Мартином можно посредством его персонального Web-сайта по адресу http://www.mcslp.com.
|
Выскажите мнение об этой странице
|  |