python 脚本笔记
[注:这篇博文默认针对的是python在liunx环境下的开发经验]
更新进度
- 2019.07.19 添加读取进程的进程号的方法
- 待定
读取进程的进程号
使用ps -ef | grep XXX
得到的进程号中间会掺杂搜索的进程号,如下图中关键词为auto
ps -ef | grep elasticsearch | grep -v grep | awk -F ' ' '{print $2}'
浅析:
grep -v grep
: 反向查找,即查找不包含grep
关键词的进程awk -F ' ' '{print $2}'
: 以空格为分隔查找第二个字段,即进程号
**注:**使用python脚本运行以下命令得到进程号出现问题,得到空,即第一行的进程号并没有得到(目前尚未解决问题):
res = subprocess.check_output("ps -ef | grep elasticsearch | grep -v grep | awk -F' ' '{print $2}'", shell=True)
可能原因?:
因为调用python脚本或者后台执行,由于python的输出有缓冲,导致获取到的变量res无法获得第一行的值直接跳到第二行.
-
- 后台运行python脚本的解决方法:使用
-u
参数,表示python不启动缓冲
nohup python -u myscript.py params1 > nohup.out 2>&1 &
- 后台运行python脚本的解决方法:使用
-
- 调用python脚本的解决方案目前还未解决