이것은 내 ps aux의 출력입니다.
ps aux | grep "node"
root 2501 0.0 3.4 720400 68512 ? Sl 16:09 0:03 node /etc/skbx/host/skbx.js 8081 tula13 8082 8084 8085 10.8.0.6
root 20586 0.0 0.1 17396 2664 pts/16 S+ 21:29 0:00 grep --color=auto node
두 번째 것을 무시하십시오. 노드 프로세스가 있습니다. Bash에서 skbx.js를 실행하는 노드 프로세스의 PID를 정확히 알아내야 합니다.
어떻게 해야 하나요? 감사해요.
답변1
PID를 추출하기 위해 출력을 필터링할 필요가 없으므로 알려진 명령줄의 PID를 찾는 경우 일반적 pgrep
으로 선호됩니다 . with를 사용하여 전체 명령줄을 일치시킬 ps | grep
수 있습니다 .pgrep
-f
pgrep -f 'node /etc/skbx/host/skbx.js'
상위 프로세스 ID 및 제어 터미널과 같은 기준으로 프로세스를 찾을 수도 있습니다.
pgrep
설치 되지 않은 경우 grep
파이프에 사용할 수 있습니다. 다음 예에서는 제공된 패턴의 문자 클래스를 사용하여 출력에 나타나지 않도록 grep
합니다 . 이는 출력을 입력 grep
으로 파이프하거나 이와 유사한 것보다 비용이 저렴합니다 .grep -v grep
ps aux | grep '[n]ode /etc/skbx/host/skbx.js' | awk '{print $2}'
grep
출력에 나열된 명령에는 ps
사용된 결과 패턴과 일치하지 않는 대괄호 리터럴이 포함 됩니다 grep
.