我跑的时候:
status some-service
它回复
some-service stop/waiting
但是当我跑步时:
def blah():
if fabtools.service.is_running('some-service'):
print "some-service is running!"
它说它正在运行,当我清楚地知道它不是时。我误解了'is_running'的功能吗?
编辑:
查看源代码:
def is_running(service):
"""
Check if a service is running.
::
import fabtools
if fabtools.service.is_running('foo'):
print "Service foo is running!"
"""
with settings(hide('running', 'stdout', 'stderr', 'warnings'), warn_only=True):
res = sudo('service %(service)s status' % locals())
return res.succeeded
它仍然让我感到困惑的是,它似乎检查服务是否存在而不是它是否正在运行
答案 0 :(得分:0)
你是对的。实现仅检查服务是否存在而不是状态 我将该行修改为:
res = sudo('service {} status|grep "running"'.format(service))
......现在它有效。
答案 1 :(得分:0)
fabtools.service.is_running
现在确实有效。
当我停止kibana
服务并在python命令行模式下运行时,请参阅下面的内容:
>>> fabtools.service.is_running('kibana')
False
当我启动kibana
服务时,它返回true
>>> fabtools.service.is_running('kibana')
True