1

我正在尝试使用我的结构脚本使用tail -f读取日志:

@task
def log(service):
    sudo("tail -n 50 -f " + service)

使用-f选项,您必须通过Ctrl-C手动终止tail。它不适用于结构版本(fab log:),Ctrl-C不会终止远程命令:

<remote-host>$ ps aux | grep tail
root     27314  0.0  0.0  33380  1744 ?        Ss   10:49   0:00 sudo -S -p sudo password: /bin/bash -l -c tail -n 50 -f /var/log/karma/gunicorn_gevent_error.log
root     27315  0.0  0.0   5592   584 ?        S    10:49   0:00 tail -n 50 -f /var/log/karma/gunicorn_gevent_error.log
... <they stack> ...
mezhenin 27337  0.0  0.0   7788   864 pts/8    R+   10:49   0:00 grep tail

做上述事情的正确方法是什么?

4

1 回答 1

3

我找到了解决这个问题的正确方法。我需要使用env.remote_interrupt = True

env.remote_interrupt = True
env.LOG = '<path to log>'

@task
def log():
    assert(env.remote_interrupt == True)
    with settings(warn_only=True):
        sudo("tail -n 50 -f " + env.LOG)
于 2013-06-17T09:06:08.530 回答