logoalt Hacker News

foobarquxtoday at 4:01 PM1 replyview on HN

Their first example is bad:

    ps aux | grep nginx | grep root | grep -v grep
can be done instead (from memory, not at a Linux machine ATM):

    ps -u root -C nginx
which is arguably better than their solution:

    psc 'process.name == "nginx" && process.user == "root"'

Replies

xorcisttoday at 4:17 PM

The commands in their example are not equivalent. The ps | grep thing searches the full command line including argument while ps -C (and, presumably, the psc thing) just returns the process name.

Should you for some reason want to do the former, this is easiest done using:

  pgrep -u root -f nginx
which exists on almost all platforms, with the notable exception of AIX.

Their other slightly convoluted example is:

  psc 'socket.state == established && socket.dstPort == uint(443)'
which is much more succinct with:

  lsof -i :443 -s TCP:ESTABLISHED
show 2 replies