V7.2: screen-manager (neue Version an tmux angepasst, HowTo)

Hallo.
Bezugnehmend auf diesen Beitrag

habe ich gerade festgestellt, dass mein screen-manager-Script unter v7.1 v7.2 nicht mehr läuft, da die torrents nun nicht mehr mit dem Befehl screen sondern mit tmux im Hintergrund laufen.

Kurzerhand habe ich das Script angepasst und poste es hier nochmal – vielleicht kann’s ja weiterhin jemand gebrauchen? Die Bedienung von tmux ist nicht schwer aber das dialog-Menu macht’s vielleicht noch übersichtlicher :thinking: :interrobang:

Hier nochmal die Quick-Reference der Tastatur-Shortcuts

und hier der screen-manager in Version 1.2 (eigentlich müsste man das jetzt in tmux-manager umtaufen, aber das lasse ich jetzt … Macht der Gewohnheit):

#!/bin/bash

# screen-manager.sh
# Geeignet für linuxmuster >= 7.2 (mit tmux anstelle von screen)
# von Michael Hagedorn
# nach einer Vorlage von
# http://nixcraft.com/showthread.php/15048-Passing-menu-arguments-from-file-to-cdialog-xdialog

VER=1.2

# Wieviele Sessions laufen?
lines=$(tmux ls |awk -F":"  '{print $1} '|wc -l);
# echo $lines;
for((j=1;j<$lines+1;j++)); do
  # alt: Welche zugehörigen Namen der screens? (werden in Datei geschrieben)
  # mit tmux reicht es, die laufenden Nummern mit ausgeben zu lassen:
   NAME=$(tmux ls |awk -F":" '{print "("NR")"} ' |head -n $j |tail -n 1);
# Die Optionen für das "dialog"-Menu werden in eine Datei geschrieben 
  # ("off" bedeutet: Alle Menupunkte per default inaktiv)
   echo $NAME /off >>/tmp/names.$$
done

i=1
while read line
 do
  # Welche PIDs gehören zu den Namen? (werden ebenfalls in Datei geschrieben)
  # Hat sich mit tmux vereinfacht, da ebenfalls die Namen verwendet werden können, anstatt die PIDs zu verwenden:
  # sed streicht das Wort _torrent aus den Menueinträgen:
  PID=$(tmux ls |awk -F":"  '{print $1} ' |sed s/_torrent//g | head -n $i |tail -n 1);  
  echo $PID $line >>/tmp/options.$$
  i=`expr $i + 1`
  done </tmp/names.$$
  OPTIONS=`cat /tmp/options.$$`

 cleanup(){
    rm -f /tmp/names.$$
    rm -f /tmp/options.$$
    rm -f /tmp/ans.$$
   }

 # Hauptmenu erzeugen:
 main_menu() {
  dialog --backtitle "Screen-Session-Manager $VER" \
         --radiolist "Welche Session soll beobachtet werden? (Ctrl + b + d für Detach)" 20 40 15 ${OPTIONS} 2>/tmp/ans.$$
  # Abbruch-Bedingung:
  opt=${?}
  if [ $opt != 0 ]; then echo "Ende!"; cleanup; exit 0; fi
  # Auswahl merken:
  result=`cat /tmp/ans.$$`

  if [ $result ] 
     then
       tmux attach-session -t $result
     else echo "Keine Auswahl getroffen! Nochmal...";
  fi
 cleanup;
 }

while true; do
  main_menu
done
#EOF

Viele Grüße,
Michael

also bei mir gibts nur torrent, kein tmux. Meintest Du 7.2 oder ist bei mir was verlorengegangen?
Grüße!

Hallo Max,

unter v7.1

also bei mir gibts nur torrent, kein tmux. Meintest Du 7.2 oder ist bei
mir was verlorengegangen?

ja: 7.2

LG

Holger