Есть действительно классная небольшая программа, которая помогает с этим, это называется «lxrandr»
Установить из программного обеспечения Ubuntu Software Center.
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
ps aux
включает полную командную строку (путь и параметры), в то время как pgrep просматривает только первые 15 символов имен исполняемого файла ps aux
возвращает полное командную строку каждого процесса, в то время как pgrep
просматривает только имена исполняемых файлов.
Это означает, что вывод grepping ps aux
будет соответствовать всему, что встречается в пути или параметры двоичного процесса: например, `
ps aux | grep php5
будет соответствовать /usr/share/php5/i-am-a-perl-script.pl
pgrep php5
не будет Возьмите пример из моей системы - только мы будем использовать Python вместо php5
:
ps aux | grep python
дает нам: izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
pgrep python
возвращает только 11729
, который вы увидите из приведенного выше списка: root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
/proc/<pid>/stat
, но не из /proc/<pid>/cmdline
i>. Хорошо, @Thorsen, вы выиграли спрей от ошибок, это ошибка: P
– ish
28 June 2012 в 15:57
pgrep
не является необоснованной командой. Работает хорошо и как задумано. Проблема в том, что вы просто упустили опцию, когда запускаете ее, вы не можете винить в этом pgrep
. Использование ps aux | grep xxx
ненадежно, поэтому нужны хаки, чтобы отфильтровать сам grep
из выходных данных и может дать ложные срабатывания, как с ps aux | grep root
.
– jlliagre
2 August 2013 в 03:23
Команда ps aux | grep x дает «лучшие» результаты, чем pgrep x, по существу, потому что у вас отсутствует опция с последним.
Просто используйте параметр -f для pgrep для поиска в полном объеме командной строки, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep, с которой вам нужно отфильтровать строку grep или использовать трюки шаблонов, [ f11] просто не будет выбирать себя по дизайну.
Кроме того, если ваш шаблон появится в столбце ps USER, вы получите нежелательные процессы в выходе, pgrep не пострадает из этого недостатка.
Если вам нужны полные данные, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, который проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать приемы с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать приемы с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
Команда ps aux | grep x
дает "лучшие" результаты, чем pgrep x
, по сути, потому что у вас отсутствует опция с последним.
Просто используйте опцию -f
для pgrep
, чтобы найти полный командная строка, а не только имя процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от конструкции ps | grep
, с которой вам нужно отфильтровать строку grep
или использовать трюки с шаблонами, pgrep
просто не выберет сам по себе.
Более того, если ваш шаблон появится в столбце ps
USER
, вы получите нежелательные процессы в выводе, pgrep
не пострадает из этого недостатка.
Если вам нужны полные детали, а не только pids, вы можете использовать:
ps wup $(pgrep -f python)
, что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon
-a
(--list-full
), если вы хотите увидеть полную командную строку, а не только pid. (У более старой версии pgrep не было -a
, делал это на -fl
.)
– Beni Cherniavsky-Paskin
12 August 2014 в 13:51
pgrep
, хорошее решение. +1
– 2rs2ts
26 June 2015 в 00:32
/proc/self/cmdline
на «описательный», pgrep -fa ruby
не будет соответствовать, например. puma 3.3.0 (tcp://localhost:3000) [MIQ: Web Server Worker]
, в то время как «тупее» pgrep -a ruby
будет. Не уверен, что последний может быть обманут.
– Beni Cherniavsky-Paskin
1 May 2016 в 15:47
pgrep
, так и к ps
.
– Franklin Yu
7 July 2016 в 09:13