欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python paramiko nohup 执行阻塞或者进程启动不成功问题

程序员文章站 2022-03-20 14:44:04
...

使用python paramiko模块时,执行 nohup ./abc & 命令时,会发现几个问题:

问题

  1. nohup 执行了但是 进程没有启动成功
  2. nohup 执行成功了,但是python程序阻塞了,无法停止
  3. nohup 执行时,报错bash: -c: line 0: syntax error near unexpected token `;’

话不多说,直接说我找到的办法好了,如果大佬有更好的方式,也可以反馈下哈

解决

  1. 执行时 使用get_pty方式
stdin, stdout, stderr = ssh.exec_command(tmp2, get_pty=True)
  1. 第2和第3个问题,问题出在 shell 命令上
    多条命令执行时,一般我都会写,
ps -ef | grep acc;nohup ./acc  & ;sleep 5

但是这个格式其实时不对的, bash再执行这个命令时就会报错(&符号终止了该行。因此不再需要添加额外的;)

ps -ef | grep acc
nohup ./acc  & 
;
sleep 5

so, 最终的格式如下,这样既可以启动进程,然后nohup执行之后 还可以跑其他命令,也不会导致阻塞

ps -ef | grep acc;nohup ./acc  & sleep 5

参考

https://www.pianshen.com/article/55741318057/

https://www.codenong.com/22298199/

https://blog.csdn.net/wenq_yang/article/details/88951190

相关标签: python shell