Как найти идентификатор процесса (PID) текущей программы терминалов?

Этот апплет кажется тем, что вы ищете. Launchpad: Ubuntu One Indicator Plugin. Этот апплет позволяет вам открыть папку UbuntuOne, запустить веб-сайт, контролировать состояние загрузки и загрузки, подключаться и отключать U1. Он также отображает приятный значок облака, указывающий, идет ли синхронизация.

Вот старая статья на Launchpad: плагин индикатора Ubuntu One , и более новый Omg! Ubuntu!: Апплет Ubuntu One Indicator добавляет новые функции (включает в себя установку с PPA и ссылками для загрузки).

Аплеты PPA - это Omg! Ubuntu !: Ubuntu One Апплет индикатора добавляет новые функции , пакет называется «индикатор-ubuntuone».

1
задан 25 August 2012 в 20:00

7 ответов

Я не думаю, что есть необходимость в таких длинных командах, когда вы можете выполнять те же команды с pgrep, pkill, pidof и т. д. ...

Чтобы получить pid из Running-Program [ ! d1]

pgrep:

   pgrep [options] pattern

pgrep: pgrep просматривает текущие запущенные процессы и перечисляет идентификаторы процессов, которые соответствуют критериям выбора для stdout. Все критерии должны соответствовать. Например,

Чтобы получить pid Running-Program Перечислите процессы, принадлежащие демонам root ИЛИ.
$ pgrep -u root,daemon

pidof:

pidof: :

Pidof находит идентификаторы процесса (pids) названных программ. Он выводит эти идентификаторы на стандартный вывод.

синтаксис: pidof имя_программы

Список процессов, принадлежащих демонам root ИЛИ.
$ pgrep -u root,daemon
29
ответ дан 25 May 2018 в 07:10

Самый простой способ узнать pid запущенной программы:

pidof <application name>

Например, если вы начали vim и хотите узнать его pid:

pidof vim
[d2 ] Помните, что вам нужно будет указать точное имя программы, которое было запущено.

Например, если вы используете vi и выполняете pidof vim, вы не получите правильных результатов.

Дополнительную информацию см. на странице руководства pidof.

12
ответ дан 25 May 2018 в 07:10
  • 1
    По умолчанию он не установлен. Это может быть в пакете sysvinit-utils. – flickerfly 20 September 2014 в 00:24

Я нашел неплохо использовать регистр без учета регистра, добавив «-i» и используя «aux» вместо «ax», чтобы получить более описательный вывод:

ps aux | grep -i firefox

If вы хотели бы убить все процессы, которые вы можете использовать:

ps aux | grep -i firefox | awk {'print $2'} | xargs kill -9

Это силовое убийство. Бросьте «-9», если вы хотите мягкое убийство.

11
ответ дан 25 May 2018 в 07:10
  • 1
    Это также убивает процесс ps aux | grep -i firefox..., потому что в его команде содержится текст firefox! – Eric 21 July 2014 в 14:41
  • 2
    @Eric вы можете использовать grep -i firefo[x] для соответствия только firefox – A.D. 22 April 2016 в 12:36
  • 3
    @ john-foley никогда не советует использовать -9 с kill, см. здесь для объяснений – A.D. 22 April 2016 в 12:38

Если вы хотите только pid (полезно для скриптов autokill и т. д.)

pgrep -f desired_program_name
2
ответ дан 25 May 2018 в 07:10

Вы также можете открыть другой терминал (или переключиться на другой tty) и запустить top, который представляет собой текстовую версию системного монитора. В первом столбце указан PID каждого запущенного процесса, который вы можете убить, нажав K, введя PID и затем введя числовой сигнал для отправки.

0
ответ дан 25 May 2018 в 07:10

Вы можете сделать:

ps ax | grep firefox | cut -f2 -d" " - | xargs kill -9

первые две трубы получают информацию о процессе, затем мы пытаемся получить столбец PID, используя сокращение старой школы, а затем мы даем результат PID для уничтожения.

0
ответ дан 25 May 2018 в 07:10
  • 1
    kill -9 - самое большое оружие, которое вы должны убить. Сначала вы должны попробовать более мягкий сигнал, прежде чем приступать к SIGKILL, чтобы дать процессу возможность очистить свои ресурсы. – Byte Commander 28 September 2016 в 00:30
  • 2
    Это правда @ByteCommander. Я хотел сделать это одним лайнером, который выполнит свою работу. – Arian Soltani 28 September 2016 в 09:40

Для тех, кто работает с Ubuntu 16.04 LTS, вы должны использовать ps ax, а не только ps в командной строке, иначе вы просто получите процессы, нерестующие из конкретного экземпляра терминала, в котором вы находитесь. (обычно просто " bash '[оболочка, в которой вы находитесь] и' ps '[что вы только что запускали])

0
ответ дан 25 May 2018 в 07:10

Другие вопросы по тегам:

Похожие вопросы: