最初,我想在 Bash 脚本中自动检查服务是否正在运行。然后我发现了一个我不理解但很好用的命令:
/usr/sbin/service mysql status || /usr/sbin/service mysql start
或者
if /usr/sbin/service mysql status > /dev/null
then
echo "mysql running"
else
echo "mysl not running"
fi
据我目前所知,左边应该返回类似 false 或 empty 的内容,但这些概念在 Linux 中并不存在。
我理解 stdin stdout stderr 但这里:当服务处于活动状态或不活动时,退出到 stdout 的结果service
。那么 Linux 如何区分服务启动或不启动?它不检查文本,它应该在某处有一些 false 或 0...
如何找到它?我完全错了吗?
答案1
这与 stdin/stdout 无关。||
意思是or
。
首先执行左边的命令。如果返回代码 >0(如果状态正常),则右边不需要执行,因为1 or anything
是 1。如果状态返回 0,则执行右边。