V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hayao650
V2EX  ›  Python

用 fabric 执行 shell 脚本遇到的问题

  •  
  •   hayao650 · 2015-03-28 11:09:25 +08:00 · 3587 次点击
    这是一个创建于 3318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样的,我有多台机器,每台机器上有一个服务起停shell脚本,我在服务器上用fabric,ssh到各个机器,执行这个shell脚本,从fabric的输出来看,脚本是执行成功了,但是当我手动ssh到各个机器上查看服务进程的时候,服务并不存在,请问大家有没有遇到过这种问题,或者知道怎么解决么?
    8 条回复    2015-04-08 23:47:23 +08:00
    zeayes
        1
    zeayes  
       2015-03-28 11:44:28 +08:00
    因为你ssh断开的时候,程序也挂了。
    可以查下 nohup 和 &。
    进程服务管理,推荐用supervisord。
    hayao650
        2
    hayao650  
    OP
       2015-03-28 12:36:30 +08:00
    @zeayes nohup和&都试过了,一样不起作用,supervisord没有用过,准备去学习下,刚才发现有人遇到相同的问题,说是fabric过早的结束了ssh的session,加一个sleep可以解决这个问题,还没有试过,准备试一下。
    lgh
        3
    lgh  
       2015-03-28 13:00:26 +08:00
    我之前是在 run() 方法里加 pty=False 参数解决的,没有加延迟和 nohup
    dreampuf
        4
    dreampuf  
       2015-03-28 13:31:23 +08:00
    nohup 之后 记得 sleep 0.1,因为你的nohup本身没bootstrap完,ssh session就结束了
    hayao650
        5
    hayao650  
    OP
       2015-04-08 21:22:48 +08:00
    @lgh 我在run函数中加上了这个参数,但是在fab运行完之后,手动ssh到该机器,ps能够查看到该进程,但是该进程的父进程是1,该进程变成了孤儿进程,而且不能正常运行,请问你遇到过这种情况么?
    hayao650
        6
    hayao650  
    OP
       2015-04-08 21:24:47 +08:00
    @dreampuf sleep 0.1是单独写在一个run里面,还是与nohup在同一个run里面,今天我试了一下,在同一个run里面,fab执行完之后,进程还是孤儿进程,而且不能正常运行,手动启动此进程就可以正常工作!
    dreampuf
        7
    dreampuf  
       2015-04-08 23:44:52 +08:00
    @hayao650 nohup 之后,你已经回答你自己啦
    lgh
        8
    lgh  
       2015-04-08 23:47:23 +08:00
    @hayao650 我之前的是通过 run() 去执行启动 JBoss 实例的命令,加了 pty=False 之后就正常了,没有你说的这种情况。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2841 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:52 · PVG 17:52 · LAX 02:52 · JFK 05:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.