Question

I want to make sure node is running when logging in. So in my .bashrc file I have:

pkill node
sleep 1
node server.js &

Of course, that doesn't check if node is running... it simply kills it and starts it up again. Instead I'd like something like this:

node_process = $(pidof node)
if [not_exists node_process]; then
  node server.js &
fi

The problem is the not_exists method doesn't seem to exist :). How do I test the existence of a number or string in Bash and is this the best way to ensure node is up and running upon login?

Was it helpful?

Solution

You can check if a string is empty using -z:

node_process_id=$(pidof node)
if [[ -z $node_process_id ]]; then
    node server.js &
fi

pidof returns nothing if no matching processes are found, so node_process_id would be set to an empty string.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top