lwilis 21.08.2009 13:13
Скрипты — Узнаем с какими параметрами запущен процесс
В ходе загрузки системы стартует масса процессов. Процессы запускаются с необходимыми параметрами. Можно запустить top и воспользоваться клавишей "c" для смены отображения колонки "COMMAND".Все бы хорошо, но строка с параметрами может обрезаться, выходя за границы экрана. Можно поотключать некоторые колонки top, но мне оказалось удобнее написать небольшой скрипт и пользоваться им. Скрипт под катом.
1 |
#!/bin/sh
|
Сценарий принимает в качестве параметра часть имени интересующего процесса или процессов, если их несколько. А отдает идентификатор процесса (PID) и строку с именем и параметрами процесса.
top умеет показывать полную строку с параметрами процесса. Обновление можно регулировать. В общем я начале просто объяснил природу появления скрипта :)
В 9,04
alex@alex-desktop:~$ pgrep -c $1
pgrep: No matching criteria specified
Usage: pgrep <-cflvx> <-d DELIM> <-n|-o> <-P PPIDLIST> <-g PGRPLIST> <-s SIDLIST>
<-u EUIDLIST> <-U UIDLIST> <-G GIDLIST> <-t TERMLIST>
alex@alex-desktop:~$
alex@alex-desktop:~$ pgrep -c $1
pgrep: No matching criteria specified
Usage: pgrep <-cflvx> <-d DELIM> <-n|-o> <-P PPIDLIST> <-g PGRPLIST> <-s SIDLIST>
<-u EUIDLIST> <-U UIDLIST> <-G GIDLIST> <-t TERMLIST>
alex@alex-desktop:~$
А это ты к чему?
pgrep - это отдельная команда из пакета procps
Я ее использовал в своем скрипте, так что на тему отсутствия опции -c наверно надо майнтайнера пакета procps спрашивать.
pgrep - это отдельная команда из пакета procps
Я ее использовал в своем скрипте, так что на тему отсутствия опции -c наверно надо майнтайнера пакета procps спрашивать.
Алексей))
Я же относительно скрита lwilis`а написал. Если просто в консоли это вводить, то вместо $1 надо ввести имя искомого процесса.
Я же относительно скрита lwilis`а написал. Если просто в консоли это вводить, то вместо $1 надо ввести имя искомого процесса.
Что это..? И кто все эти люди..?
ps auxww |grep process выведит чего надо и без обрезков.
ps auxww |grep process выведит чего надо и без обрезков.
Чтобы получить тоже самое, твою конструкцию еще нужно через awk прогнать. В общем не думаю, что получится короче. Может быть выложишь ответный сценарий?
Простите, зачем всё ЭТО?
user@user-desktop:/var/mail$ ps auxww |grep opera
user 12486 16.9 16.0 458872 331388 ? Sl Aug19 499:16 /usr/lib/opera/9.64/opera
user 12582 4.2 1.4 124768 29768 ? RNl Aug19 124:01 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
user 12583 0.0 0.0 2956 712 ? S Aug19 0:00 /usr/lib/opera/9.64/operaplugincleaner 12486
user 17809 0.0 0.0 3336 804 pts/8 S+ 14:15 0:00 grep opera
user 18315 0.0 3.9 220544 81040 ? Sl Aug10 2:54 evince /home/user/.opera/cache4/temporary_download/Doors32_UsersGuide_3_9_rus.pdf
Не ужто так не пойдёт?
user@user-desktop:/var/mail$ ps auxww |grep opera
user 12486 16.9 16.0 458872 331388 ? Sl Aug19 499:16 /usr/lib/opera/9.64/opera
user 12582 4.2 1.4 124768 29768 ? RNl Aug19 124:01 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
user 12583 0.0 0.0 2956 712 ? S Aug19 0:00 /usr/lib/opera/9.64/operaplugincleaner 12486
user 17809 0.0 0.0 3336 804 pts/8 S+ 14:15 0:00 grep opera
user 18315 0.0 3.9 220544 81040 ? Sl Aug10 2:54 evince /home/user/.opera/cache4/temporary_download/Doors32_UsersGuide_3_9_rus.pdf
Не ужто так не пойдёт?
Ничего не понимаю... О чём Вы? Вывод будет просто в несколько строк. Всё вполне нормально.
да, понятно, что в несколько строк. Просто бывают случаи, когда у комманды длинная строка с параметрами (например, xinit, у меня).
Соответственно дополнительная инфа, которую отдает ps u будет сильно удлинять строку - получаем переносы строк. Ну неудобно же воспринимать. А отсеивать с помощью awk всякие USER %CPU %MEM и т.д. мне лень.
Соответственно дополнительная инфа, которую отдает ps u будет сильно удлинять строку - получаем переносы строк. Ну неудобно же воспринимать. А отсеивать с помощью awk всякие USER %CPU %MEM и т.д. мне лень.
user@user-desktop:~/Script$ ./process opera
<: 24: 3: unexpected operator
<: 29: 3: unexpected operator
12486 /usr/lib/opera/9.64/opera
12582 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
12583 /usr/lib/opera/9.64/operaplugincleaner 12486
Ваш вывод.
user@user-desktop:~/Script$ ps auxww |grep opera
user 12486 16.9 16.0 458588 331276 ? Sl Aug19 502:21 /usr/lib/opera/9.64/opera
user 12582 4.2 1.4 124768 29848 ? RNl Aug19 124:33 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
user 12583 0.0 0.0 2956 712 ? S Aug19 0:00 /usr/lib/opera/9.64/operaplugincleaner 12486
user 18066 0.0 0.0 3336 804 pts/8 S+ 14:28 0:00 grep opera
user 18315 0.0 3.9 220544 81040 ? Sl Aug10 2:54 evince /home/user/.opera/cache4/temporary_download/Doors32_UsersGuide_3_9_rus.pdf
Мой вывод.
В общем надо как-то подделать может скрипт. А так да, вполне себе не плохо.
<: 24: 3: unexpected operator
<: 29: 3: unexpected operator
12486 /usr/lib/opera/9.64/opera
12582 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
12583 /usr/lib/opera/9.64/operaplugincleaner 12486
Ваш вывод.
user@user-desktop:~/Script$ ps auxww |grep opera
user 12486 16.9 16.0 458588 331276 ? Sl Aug19 502:21 /usr/lib/opera/9.64/opera
user 12582 4.2 1.4 124768 29848 ? RNl Aug19 124:33 /usr/lib/opera/9.64/operapluginwrapper 72 76 /usr/lib/mozilla/plugins/flashplugin-alternative.so
user 12583 0.0 0.0 2956 712 ? S Aug19 0:00 /usr/lib/opera/9.64/operaplugincleaner 12486
user 18066 0.0 0.0 3336 804 pts/8 S+ 14:28 0:00 grep opera
user 18315 0.0 3.9 220544 81040 ? Sl Aug10 2:54 evince /home/user/.opera/cache4/temporary_download/Doors32_UsersGuide_3_9_rus.pdf
Мой вывод.
В общем надо как-то подделать может скрипт. А так да, вполне себе не плохо.
а еще есть замечательная вещь htop. умеет очень много, и удобна в использовании.
Жду пост, который меня замотивирует установить htop. Интересуют киллер-фичи перед классическим top.
F9 - Enter = SIGKILL.
а вообще по Ф9 можно послать любой сигнал процессу.
а вообще по Ф9 можно послать любой сигнал процессу.
Почти всё тоже самое, но одной строкой:
Естественно, теряем все кастомные сообщения об ошибках
#!/bin/sh
ps ax -o "%p %a" | grep $1 | grep -v -e grep -e "$$"
Естественно, теряем все кастомные сообщения об ошибках
> Все бы хорошо, но строка с параметрами может обрезаться, выходя за границы экрана.
Ей-богу, не хочу огорчать, но оно стрелочками прокручивается :)
Ей-богу, не хочу огорчать, но оно стрелочками прокручивается :)
но причем тут top ? он же показывает не просто список процессов, а список активных процессов и обновляется в реальном времени