linux, python,program screen

Odpowiedz Nowy wątek
2018-06-26 00:04
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.

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:

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

Pozostało 580 znaków

2018-06-26 00:17
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.

Pozostało 580 znaków

2018-06-26 00:21
0

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

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

Pozostało 580 znaków

2018-06-26 00:22

Przechwytywanie.PNG


01010100 01110101 01110100 01100001 01101010 00100000 01101110 01101001 01100101 00100000 01101101 01100001 00100000 01101110 01101001 01100011 00100000 01100011 01101001 01100101 01101011 01100001 01110111 01100101 01100111 01101111 00101110 00100000 01001001 01100011 00100000 01110011 01110100 01101111 01101110 01110100 00101110
nie podoba mi sie ten returncode:1 ale stdout by sie zgadzalo - stivens 2018-06-26 00:30
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 - Dominik Kiełtyka 2018-06-26 00:38

Pozostało 580 znaków

2018-07-17 15:38
0

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

wygląda fajnie dzięki popatrze - Dominik Kiełtyka 2018-07-17 19:44

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0