linux, python,program screen

linux, python,program screen
Dominik Kiełtyka
  • Rejestracja:około 7 lat
  • Ostatnio:22 dni
  • Lokalizacja:Kraków
  • Postów:26
0

Witam
Krótki wstęp:
zainstalowany program:

  • screen
    Poleceniem w linuxie:
    screen -ls | grep packettransport -c #dostaje liczbę aktualnych screen

W pythonie chciałem zrobić program, który zwracał by liczbę aktualnych screenów, wykonując polecenie w bashu.

Kopiuj
import subprocess

command = "screen -ls | grep packettransport -c"
returned_output = subprocess.check_output(command, shell=True)
print(returned_output.decode("utf-8"))

Czy mógłby mi ktoś wskazać błąd w powyższym kodzie:
Exception:

Kopiuj
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    returned_output = subprocess.check_output(command, shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'screen -ls | grep packettransport -c' returned non-zero exit status 1

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6670
0

subprocess.CalledProcessError: Command 'screen -ls | grep packettransport -c' returned non-zero exit status 1

Kod pythona jest ok, ale z komendą jest problem. Spróbuj zamienić miejscami packettransport z -c.


🕹️⌨️🖥️🖱️🎮
Dominik Kiełtyka
  • Rejestracja:około 7 lat
  • Ostatnio:22 dni
  • Lokalizacja:Kraków
  • Postów:26
0

wygląda na to że sobie nie radzi z tą komendą, po zmianie tak jak pisałeś:

Kopiuj
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    returned_output = subprocess.check_output(command, shell=True)
  File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.5/subprocess.py", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'screen -ls | grep -c packettransport' returned non-zero exit status 1

stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
2

Przechwytywanie.PNG


λλλ
stivens
nie podoba mi sie ten returncode:1 ale stdout by sie zgadzalo
Dominik Kiełtyka
Dzięki wielkie, super działa!!! output.returncode w łatwy sposób można zwrócić informacje na temat wykonanego polecenia, to też się przyda
BD
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:15
0

Gdybyś szukał gotowego multiplexera opakowanego w python to polecam: https://github.com/tmux-python/tmuxp

Dominik Kiełtyka
wygląda fajnie dzięki popatrze

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.