Opstarten meerdere Python scripts elk in eigen terminal

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Ik heb een RPI waar meerdere Python scripts op draaien die MQTT data verwerken. Ieder script print de resultaten naar het scherm zodat ik kan monitoren of ze goed draaien. Daarom start ik ieder script op vanuit een separate terminal zodat de resultaten van de scripts niet door elkaar staan. Ik wil dit opstarten automatiseren maar heb nog geen goede manier gevonden om dit resultaat bij opstart te verkrijgen. Als ik vanuit Python meerdere scripts opstart worden de resultaten door elkaar geprint. Ik heb geprobeerd de scripts vanuit een shellscript op te starten door ze te koppelen met & maar ik wil ze vanuit verschillende terminals hebben draaien en dit lukt me niet.

Beste antwoord (via Poecillia op 26-01-2020 21:35)


  • CurlyMo
  • Registratie: Februari 2011
  • Nu online
Daarvoor is screen gemaakt.

Met de zoekterm:
start screen with script
Kom je hier:
https://superuser.com/a/454914

Sinds de 2 dagen regel reageer ik hier niet meer

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Nu online
Daarvoor is screen gemaakt.

Met de zoekterm:
start screen with script
Kom je hier:
https://superuser.com/a/454914

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Dat is inderdaad precies de tool die ik nodig heb. Het lukt me om de programma's in meerdere screens vanuit een script op te starten en als ik die open kan ik de output bekijken. Maar daarvoor moet ik het nummer van het screen opzoeken, een terminal openen en screen -r [screennr] invoeren. Ik wil dat het script alle geopende screens direct laat zien. Daar lijkt geen commando voor te zijn. Daarnaast schijnen er shortcuts te zijn met de ctrl toets, die bij mij niet werken (zal wel door VNC viewer komen).

Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 16:03

thunder7

houten vaas/schaal nodig?

Als je alleen de output wil zien, en die staat in een logfile: multitail

Als je in de screen handleiding naar 'split' en 'layout save' zoekt, moet je ook komen waar je wil zijn.
Persoonlijk heb ik een statusline (keyword 'hardstatus') die gewoon laat zien welk script in welke terminal draait.

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Nu online
Poecillia schreef op zondag 26 januari 2020 @ 10:56:
Ik wil dat het script alle geopende screens direct laat zien.
Waarom laat je je scripts niet naar een gezamenlijke logfile schrijven met een prefix het betreffende script:
code:
1
2
3
4
[script1] foo
[script2] bar
[script2] foo
[script1] bar

Eventueel zelfs met een timestamp toevoeging voor volgordelijkheid mocht dat mis gaan.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • MartenBE
  • Registratie: December 2012
  • Laatst online: 10-09 18:09
Tmux is een spirituele opvolger van screen en laat veel meer toe. Je kan er makkelijk een scriptje in schrijven om je terminal in verschillende vensters te splitsen, commando's uit te voeren, keyboard input te synchronizeren, etc. Op het internet vind je veel voorbeelden.

Een eigen bash functie dat ik heb gemaak, splitst een terminal in 3 delen: 1 voor htop, 1 voor de temperatuur en 1 voor de schijfruimte. De functie heb ik onderaan in mijn ~/.bash_profile gestopt, zodat ik het in de terminal met "diag" kan oproepen.

~/.bash_profile:

Bash:
1
2
3
4
5
6
7
8
9
10
11
diag() {
    TMUX_SESSION=diag
    tmux new-session -s $TMUX_SESSION -d
    tmux send-keys -t $TMUX_SESSION "htop" C-m
    tmux split-window -v -t $TMUX_SESSION "watch -n 1 sensors"
    tmux split-window -h -t $TMUX_SESSION "watch -n 1 df -h"
    tmux select-pane -t 0
    tmux attach -t $TMUX_SESSION
}

export -f diag


Geeft het volgende:
Afbeeldingslocatie: https://images2.imgbox.com/91/bc/xqwAnsIy_o.png

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 18:37

Matis

Rubber Rocket

Ik gebruik de wrapper byobu om screens te managen.

Misschien het onderzoeken waard.

If money talks then I'm a mime
If time is money then I'm out of time

Pagina: 1