Watch your processes in terminal

I recently learned about the watch command. It doesn’t come with macos as a default. You need to manually install it. Use homebrew:

brew install watch

I was happy, but that didn’t last long: I quickly ran into troubles. I got frustrated because I couldn’t pipe grep together with the watch command like this:

watch ps | grep node

It doesn’t work. I found: quickly though. Phew.

Using quotes

It will run the whole command inside the quotes every update.

watch 'ps | grep node'

I use to monitor node processes like this:

watch -n 1 'ps -eo comm,rss,%mem,%cpu | grep node'

To show the KB in MB instead:

watch -d -n 1 $'ps -o rss,comm | grep node | awk \'{print $1}\' | xargs -I {} echo \'scale=2; {} / 1024\' | bc'

Doing the calculation with awk doesn’t require that much piping:

watch -d -n 1 $'ps -o rss,comm | grep node | awk \'{print $1/1024}\''

Keep history with a while loop

Or if you just don’t want to use watch. A regular while loop is handy:

while true; do ps -o rss,comm | grep node | awk '{print $1/1024}'; sleep 1; done