关于 Linux 的进程
Linux 进程的一些问题
在开发中遇到的问题:用 pyinstaller 编译出的二进制文件,用 python 的 paramiko 库 ssh 连接后运行却运行失败,记录一下排查错误的过程,同时学到了一些常用的指令。
- 首先认为是二进制工具本身有问题查看目前所有进程及其状态,找到二进制工具进程对应的 PID 号 4975
1
ps aux
显示出进程的状态,查看系统对每个进程限制的最大线程量1
2cd /proc/4975
cat status1
cat /proc/sys/kernel/threads-max
- 可能是由于命令在 stderr 或 {} 上产生过多的输出而导致缓冲区溢出,导致命令完成的信号丢失
但是先前会有很多输出数据,并没有出现此问题,也不会是超时问题 - 问题可能出现在 paramiko 上,发现 exec_command 函数中有一参数,get_pty,设置 get_pty=True 问题完美解决
1
stdin, stdout, stderr = client.exec_command(cmd, get_pty=True)
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.