다음 명령이 tail
실행되지 않을 때 출력이 생성되지 않으면 기쁠 것입니다.
ps --no-headers $(pidof tail)
대신 나는 다음을 얻습니다.
964 pts/2 00:00:01 bash
4393 pts/2 00:00:00 ps
답변1
ps
귀하의 버전이 이 옵션을 지원하는 경우 -C
:
ps --no-headers -C tail
ps
그렇지 않은 경우 성공한 경우에만 실행할 수 있습니다 pidof
.
pid=$(pidof tail) && ps --no-headers ${pid}
또는 (Zsh의 경우):
pid=$(pidof tail) && ps --no-headers $=pid
(감사해요자일스! ).
답변2
pidof
pgrep
시스템에서 실행 중인 항목을 확인하는 데 유용한 명령이지만 일부 운영 체제에서는 두 명령 모두 사용할 수 없습니다 . 이는 대부분의 Unix, BSD 및 Linux 버전에서 작동합니다.
ps aux | grep tail | grep -v grep
그러면 grep 명령 자체가 제거됩니다.
답변3
를 사용하면 pgrep
PID와 명령을 나열할 수 있으며 빈 입력에서는 프로세스가 일치하지 않습니다.
pgrep -a tail
표시되는 필드를 더 자세히 제어하려면 pidof
프로세스 목록이 비어 있지 않은 경우에만 또는 를 호출하세요 pgrep
. ps
임시 변수를 사용할 수 있습니다.
pids=$(pgrep -d, tail)
[ -z "$pids" ] || ps --no-headers -p "$pids"
또는 ifne
에서더 많은 유틸리티:
pgrep tail | ifne xargs ps --no-headers