GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecutando un comando de linux desde python

Usualmente uso subprocess para ejecutar un comando externo. Para tu caso, puedes hacer algo como lo siguiente

from subprocess import Popen, PIPE

p = Popen('ps -ef | grep rtptransmit | grep -v grep', shell=True,
          stdout=PIPE, stderr=PIPE)
out, err = p.communicate()

La salida estará en out variables.


commands está en desuso, no debe usarlo. Usa subprocess en cambio

import subprocess
a = subprocess.check_output('ps -ef | grep rtptransmit | grep -v grep', shell=True)

ps aparentemente limita su salida para encajar en el ancho presunto de la terminal. Puede anular este ancho con el $COLUMNS variable de entorno o con el --columns opción a ps .

El commands el módulo está en desuso. Usa subprocess para obtener la salida de ps -ef y filtre la salida en Python. No use shell=True como lo sugieren otras respuestas, es simplemente superfluo en este caso:

ps = subprocess.Popen(['ps', '-ef', '--columns', '1000'], stdout=subprocess.PIPE)
output = ps.communicate()[0]
for line in output.splitlines():
    if 'rtptransmit' in line:
        print(line)

También puede echar un vistazo al pgrep Comando mediante el cual puede buscar directamente procesos específicos.


Linux
  1. Cómo asignar la salida de un comando de Linux a una variable

  2. Automatización de comandos en ejecución en Linux desde Windows usando PuTTY

  3. Omitir la primera línea de cualquier salida de comando de Linux

  4. Salida de comando de Linux como parámetro de otro comando

  5. Ejecutar un script de Python desde PHP

Comando W en Linux

Al mando en Linux

Comando iftop en Linux

Comando lsblk en Linux

Cómo quitar un comando del historial en Linux

Ejemplos de comandos echo de Linux