python3 脚本中有如下代码, 但 os.system()方法无法获取 shell 指令的返回值, 无法判断是否存在nginx的进程. 请问大神有什么方法可以解决该问题?
import os os.system('netstat -tnlp | grep nginx')
欢迎选择我的课程,让我们一起见证您的进步~~
Mengapa tiada nilai pulangan?
import os if(os.system('netstat -tnlp | grep nginx') == 0) { print 'process nginx exists.' }
Atau apa yang anda ingin katakan ialah sistem tidak boleh mendapatkan output kandungan melalui arahan shell? Kemudian gunakan popen
import os if(os.popen('netstat -tnlp | grep nginx').read() != '') { print 'process nginx exists.' }
Cara yang lebih berkuasa untuk memanggil subrutin ialah subprocess.Popen, yang tidak disenaraikan di sini Keperluan anda agak rumit untuk dilaksanakan menggunakan kaedah ini Jika anda ingin mengetahui lebih lanjut, anda boleh menyemak dokumentasi
subprocess.Popen
subproses.getstatusoutput(cmd)
>>> subprocess.getstatusoutput('ls /bin/ls') (0, '/bin/ls') >>> subprocess.getstatusoutput('cat /bin/junk') (256, 'cat: /bin/junk: No such file or directory') >>> subprocess.getstatusoutput('/bin/junk') (256, 'sh: /bin/junk: not found')
Mengapa tiada nilai pulangan?
Atau apa yang anda ingin katakan ialah sistem tidak boleh mendapatkan output kandungan melalui arahan shell? Kemudian gunakan popen
Cara yang lebih berkuasa untuk memanggil subrutin ialah
subprocess.Popen
, yang tidak disenaraikan di sini Keperluan anda agak rumit untuk dilaksanakan menggunakan kaedah ini Jika anda ingin mengetahui lebih lanjut, anda boleh menyemak dokumentasisubproses.getstatusoutput(cmd)