cari

Rumah  >  Soal Jawab  >  teks badan

python3 脚本调用shell 指令如何获得返回值

python3 脚本中有如下代码, 但 os.system()方法无法获取 shell 指令的返回值, 无法判断是否存在nginx的进程. 请问大神有什么方法可以解决该问题?

import os
os.system('netstat -tnlp | grep nginx')
天蓬老师天蓬老师2787 hari yang lalu586

membalas semua(2)saya akan balas

  • 迷茫

    迷茫2017-04-18 10:26:50

    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

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:26:50

    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')

    balas
    0
  • Batalbalas