Нет, установка в настоящее время не выполняется. Чтобы правильно отслеживать, только одна программа может выполнять задачи, связанные с программным пакетом, одновременно, в этом случае, вероятно, это виджет, который иногда сообщает вам, что у вас есть новые обновления для установки, ищущие обновления в фоновом режиме. Думаю, просто подожди несколько минут и попробуй еще раз.
Программы pgrep
и pidof
не совсем одно и то же, но они очень похожи. Например:
$ pidof 'firefox'
5696
$ pgrep '[i]ref'
5696
$ pidof '[i]ref'
$ printf '%s\n' "$?"
1
Как видите, pidof
не смог найти соответствие для [i]ref
. Это потому, что pidof program
возвращает список всех идентификаторов процессов, связанных с программой под названием program
. С другой стороны, pgrep re
возвращает список всех идентификаторов процессов, связанных с программой, имя которой соответствует регулярному выражению re
.
В самых простых формах эквивалентность выглядит следующим образом:
$ pidof 'program'
$ pgrep '^program$'
В качестве еще одного конкретного примера рассмотрим:
$ ps ax | grep '[w]atch'
12 ? S 0:04 [watchdog/0]
15 ? S 0:04 [watchdog/1]
33 ? S< 0:00 [watchdogd]
18451 pts/5 S+ 0:02 watch -n600 tail log-file
$ pgrep watch
12
15
33
18451
$ pidof watch
18451
Fox упомянул, что pgrep
выполняет поиск с использованием регулярных выражений, а pidof
— нет.
Но pgrep
также имеет гораздо больше доступных опций:
-u "$UID"
вы можете сопоставить только процессы, принадлежащие текущему пользователю. --parent
вы можете найти дочерние процессы данного процесса. --самый старый
или --самый новый
из соответствующих процессов. Давайте выясним, к какому пакету принадлежит каждый процесс (в подходящих системах):
$ dpkg -S "$(which pidof)"
sysvinit-utils: /bin/pidof
$ dpkg -S "$(which pgrep)"
procps: /usr/bin/pgrep