1

fabtoolsを誤解していますか?

私が実行するとき:

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

サービスが実行されているかどうかではなく、サービスが存在するかどうかをチェックしているように見えるという意味で、まだ混乱しています

4

2 に答える 2

0

あなたが正しいです。実装は、サービスが存在するかどうかのみをチェックし、ステータスはチェックしません。
行を次のように変更しました。

res = sudo('service {} status|grep "running"'.format(service))

...そして今、それは動作します。

于 2013-06-19T11:21:19.677 に答える