2

我想确保node登录时正在运行。所以在我的.bashrc文件中我有:

pkill node
sleep 1
node server.js &

当然,这不会检查是否node正在运行……它只是将其杀死并重新启动。相反,我想要这样的东西:

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

问题是该not_exists方法似乎不存在:)。如何在 Bash 中测试数字或字符串的存在,这是确保节点在登录时启动并运行的最佳方法?

4

1 回答 1

7

您可以使用以下方法检查字符串是否为空-z

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

pidof如果没有找到匹配的进程,则不返回任何内容,因此node_process_id将设置为空字符串。

于 2013-10-10T12:21:30.797 回答