Который является самым коротким способом перечислить рабочий процесс?

Я часто должен проверять, работает ли процесс, таким образом, я использую один из них:

ps aux | grep myprocess
ps -Fe | grep myprocess
top
pgrep myprocess (only shows the PID)
pkill myprocess (if I want to kill it)

Все вышеупомянутые команды работают хорошо, но, есть ли более короткая команда, чтобы сделать это? Любой ответ ценится, но выбранный должен быть...

  • Созданный в решении, поскольку я работаю со многими различными устройствами.
  • Включает для использования шаблона.
  • Дает Вам подобную информацию, чем PS aux.
  • Короче, чем, что мы уже знаем.

Спасибо

1
задан 26 June 2014 в 00:11

4 ответа

Я думаю, что Вы просите, не существует итак, почему бы не записать немного функции удара или сценария, который делает точно, что Вы хотите?

function p {
    ps aux | awk -v s="$@" 'NR>1 && $11~s'
}

Всуньте это Ваш ~/.bash_functions (или везде, где назван ~/.bashrc) и звоните source ~/.bashrc для перезагрузки его и необходимо смочь работать:

$ p firefox
oli       5992 11.2  4.2 2856240 1044104 ?     Sl   Jun17 313:56 /usr/lib/firefox/firefox

Выражение возьмет regex, который делает его вдвойне удобным. И p самостоятельно даст Вам полный список.

4
ответ дан 3 December 2019 в 06:26

Используя псевдоним и grep для отфильтровывания его собственного терминального процесса:

alias qp="ps aux | grep -E -v \"tty.*grep|pts.*grep\" | grep -m1"

Если Вы хотите последний/новейший процесс:

alias qp="ps ax | tac | grep -E -v \"tty.*grep|pts.*grep\" | grep -m1"
3
ответ дан 3 December 2019 в 06:26

Это дает идентификатор процесса при выполнении и не, не работая

процесс pidof

0
ответ дан 3 December 2019 в 06:26

Другие ответы очень хороши и в основном оборачивают Ваше специальное решение ps | grep в псевдоним оболочки или функцию. Нет ничего неправильно с тем подходом. Обратите внимание, однако, что это означает ps будет извлекать информацию для всех рабочих процессов, и затем Вы имеете awk или grep отфильтровывание строк интереса.

Я предложил бы, чтобы было немного более эффективно использовать pgrep получить список PIDs (поскольку Вы показываете в своем вопросе), и использование ps для получения выходного формата, Вы хотите только для PIDs, подобранного pgrep.

Простое соответствие процесса, стиль POSIX полный список

pg() {
    pids=`pgrep -d, "$1"`
    [ "$pids" ] && ps -f -p "$pids"
}

pg myprocess

Это показывает полное ps список для подобранных имен процесса. Это функциональное определение может быть добавлено к ~/.bashrc всегда определяться в Вашей интерактивной оболочке. Это может также быть изменено несколькими различными способами изменить выходной формат или соответствовать полным командным строкам вместо просто имени процесса.

Простое соответствие процесса, пользователь BSD-стиля, перечисляющий

pg() {
    pids=`pgrep -d, "$1"`
    [ "$pids" ] && ps up "$pids"
}

Полное соответствие командной строки, список управлений заданиями BSD-стиля

pg() {
    pids=`pgrep -f -d, "$1"`
    [ "$pids" ] && ps jp "$pids"
}

Полное соответствие командной строки, стиль POSIX, долго перечисляющий

pg() {
    pids=`pgrep -f -d, "$1"`
    [ "$pids" ] && ps -l -p "$pids"
}

Отметьте -f опция на pgrep в последних двух примерах, которые будут соответствовать на полной командной строке. Можно изменить эти примеры для удовлетворения потребностям, при этом важная часть то, что p или -p опция дана со списком PIDs, найденного pgrep.

0
ответ дан 3 December 2019 в 06:26

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

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