python paramiko nohup 执行阻塞或者进程启动不成功问题
程序员文章站
2022-03-20 14:44:04
...
使用python paramiko模块时,执行 nohup ./abc & 命令时,会发现几个问题:
问题
- nohup 执行了但是 进程没有启动成功
- nohup 执行成功了,但是python程序阻塞了,无法停止
- nohup 执行时,报错bash: -c: line 0: syntax error near unexpected token `;’
话不多说,直接说我找到的办法好了,如果大佬有更好的方式,也可以反馈下哈
解决
- 执行时 使用get_pty方式
stdin, stdout, stderr = ssh.exec_command(tmp2, get_pty=True)
- 第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
下一篇: logrotate的配置