![정확한 명령으로 프로세스를 찾는 방법은 무엇입니까?](https://linux55.com/image/150994/%EC%A0%95%ED%99%95%ED%95%9C%20%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%B0%BE%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 프로세스 목록은 다음과 같습니다.
$ ps
PID USER TIME COMMAND
1 root 0:00 bash -c cp -R /docker /var/lib; echo Loading...; wrapdocker
7 root 0:00 bash --login
312 root 0:00 dockerd
321 root 0:00 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
488 root 0:00 ps
프로세스가 dockerd
실행 중인지 확인하고 싶습니다.
실행하면 ps | grep dockerd
두 가지 프로세스가 인쇄됩니다.
$ ps | grep 'dockerd'
312 root 0:00 dockerd
492 root 0:00 grep dockerd
특정 명령줄을 통해 찾아야 하는데 dockerd
그렇지 않습니다 grep dockerd
.
dockerd
실행 중인지 확인하려면 쉘 스크립트의 일부로 필요합니다 .
답변1
pgrep process
대신 사용해야 합니다 ps aux | grep process
.
현재 gnome-terminal
실행 중이므로
ps aux | grep gnome-terminal
user 2045 0.9 0.9 459456 36084 ? Ssl 17:33 0:00
/usr/lib/gnome-terminal/gnome-terminal-server
user 2206 0.0 0.0 12780 996 pts/0 S+ 17:33 0:00 grep
gnome-terminal
하지만
pgrep gnome-terminal
2045
현재 chome이 실행되고 있지 않으므로
ps aux | grep chrome
user 2212 0.0 0.0 12780 976 pts/0 S+ 17:34 0:00 grep chrome
그러나 pgrep chrome
아무것도 반환되지 않습니다.
귀하의 경우에는 pgrep dockerd
작동합니다.
답변2
#!/bin/bash
ps -ef | grep -q "[d]ockerd"
if [ "$?" -eq "0" ]
then
echo "dockerd is running"
else
echo "dockerd is not running"
fi