$ fg yes
yes > /dev/null
^C
$ ps
PID TTY TIME CMD
25164 pts/0 00:00:00 bash
26729 pts/0 00:00:00 ps
Обратите внимание, что в этом примере запись ^C означает нажатие клавиатурной комбинации +.
Если вызвать программу ps с опцией -f, то вывод пополнится несколькими новыми столбцами:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
nnivanov 25164 25161 0 13:43 pts/0 00:00:00 bash
nnivanov 26790 25164 0 13:59 pts/0 00:00:00 ps –f
Особый интерес здесь представляют столбцы UID и PPID. Нетрудно догадаться, что в столбце PPID выводится идентификатор родительского процесса. Однако столбец UID требует особого рассмотрения.
Предположим, что в системе есть какой-то файл foo с правами доступа 0600 (восьмеричное представление), принадлежащий не вам. Но вам вдруг захотелось посмотреть его содержимое при помощи программы cat:
$ cat foo
cat: foo: Permission denied
Все тривиально: программа cat не смогла открыть файл и вывела сообщение о том, что доступ запрещен. Но если владелец файла введет ту же самую команду, то ошибки не произойдет. Возникает резонный вопрос: как одна и та же программа cat отличает "своих" от "чужих"? Ответ прост: каждый процесс в Linux работает от лица одного из пользователей системы.
Итак, столбец UID (User IDentifier) в расширенном выводе программы ps содержит имя пользователя, от лица которого запущен процесс.
Если запустить программу ps с флагом -e, то будет выведен полный список работающих в системе процессов. Многие флаги программы ps можно комбинировать. Например, следующие две команды эквивалентны и выводят полный список процессов в расширенном виде:
$ ps -e -f
$ ps -ef
Чтобы получить сводку опций программы ps, просто введите следующую команду:
$ ps --help
Подробное описание программы ps можно найти на соответствующей странице справочного руководства (man)
Достарыңызбен бөлісу: |