使用fabric遇到2个错误问题解决办法

1. sudo 报错的问题

正常使用fabric的sudo出现报错,错误如下: 

sudo('ls',user='admin')
#执行过程:
yunpeng@yunpeng-taobao:fab deploy_tlog2_proxy_dev
[10.125.48.147] Executing task '_deploy_tlog2_proxy_dev'
[10.125.48.147] sudo: ls
[10.125.48.147] out: Sorry, user yunpeng.jiangyp is not allowed to execute '/bin/bash -l -c ls' as admin on v125048147.bja.
[10.125.48.147] out: 

Fatal error: sudo() received nonzero return code 1 while executing!
Requested: ls
Executed: sudo -S -p 'sudo password:'  -u "admin"  /bin/bash -l -c "ls"

可以看到原因是在v125048147.bja.这台机器上执行sudo -S -p 'sudo password:'  -u "admin"  /bin/bash -l -c "ls"没有权限,查看了一下bash手册,-l表示login模式,如果去掉-l就不会报告权限错误,查看了一下sudo的API,发现还真有这个参数,改为下面这种方式问题解决

sudo('ls',user='admin', shell=False)

 

 

2. 通过fabric无法正常启动jvm

最开始是通过如下方式启动:

sh /home/admin/tlog-proxy/bin/startup.sh

 发现没有任何错误信息但jvm 没有正常启动起来,后来想起可能是因为ssh screen退出导致的。改为下面这种方式问题解决:

sudo -u admin nohup /home/admin/tlog-proxy/bin/startup.sh >/dev/null

 

你可能感兴趣的:(题解)