
내 프로세스 목록은 다음과 같습니다.
$ 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