当在python脚本中使用时,nohup进程不会继续在后台运行

时间:2014-12-16 13:15:37

标签: python python-2.7 background-process mysql-python nohup

我想在后台运行远程服务器上的mysql查询。

  

nohup mysql -h10.0.100.1 -P3306 -utest -ppassword -Dcms -e“select * from table1;” &安培; echo $!

当从命令行手动执行上面的命令时,我看到进程在后台运行(表中有记录会在2分钟内返回响应)

  

[root @ TEST_Server] #ps -ef | grep mysql
  root 11144 9227 19 17:44 pts / 0 00:00:01 mysql -h 10.0.100.1 -P 3306 -utest -px xxxxxxx -Dcms -e select * from table1;

然而,当我在python脚本中使用此代码时,我看不到任何进程在后台运行。它没有执行预期的mysql命令 Python代码段:

 cmd = "nohup mysql -h10.0.100.1 -P3306 -uroot -ppassword -Dcms \
            -e \"select * from table1 ;\" & echo $!"  
 out, err, code = ssh_client.execute_sudo_command(["%s" % cmd])  
 print out

它返回PID但是我没有看到该进程在它打算运行的时间段内没有真正在后台运行。

我尝试了https://github.com/brooklyncentral/brooklyn/issues/162http://en.wikipedia.org/wiki/Nohup

中提到的解决方案
  

ssh localhost'nohup mysqld> out 2>错误< / dev / null&回声$! > pid.txt;退出0'

但它没有成功。

我正在使用python 2.7.6和SSHClient进行远程连接。 有什么建议可以解决这个问题?

0 个答案:

没有答案