Kód: [Vybrat]#! /usr/bin/env bash# úprava vedoucí k zabití celého skriptu místo procesu catPID_NA_ZABITI=navrat=1while [ $navrat -eq 1 ]; doodpoved=$(zenity --ellipsize --info --title "Test panelu GERCOM" \ --text="Zvolte funkci (režim SETUP je nutno ukončit vypnutím panelu!)" \ --extra-button MAZÁNÍ \ --extra-button MOŽNOSTI \ --extra-button VYPLŇH \ --extra-button SETUP \ --extra-button SOUBOR \ --extra-button SOUBKONEC \ --ok-label ZAVŘÍT_OKNO\ ) navrat=$?# Test návratové hodnotyif [ $navrat -eq 0 ]; thenif [[ $PID_NA_ZABITI ]]; then pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs killfi exit 0fi# Testy odpovědícase $odpoved inMAZÁNÍ) ./testmaz.sh & ;;VYPLŇH) ./testh.sh & ;; MOŽNOSTI) ./testmozn.sh & ;;SETUP) ./testsetup.sh & ;;SOUBOR) # Pokud už není PID, spusť skript # Předejde se vícenásobnému spuštění if [[ ! $PID_NA_ZABITI ]] || [ ! -d /proc/$PID_NA_ZABITI ]; then # skript je spuštěn na pozadí. ./testodeslsoub.sh & # nastavíme proměnnou na jeho PID PID_NA_ZABITI=$! fi ;; SOUBKONEC) # Test jestli existuje spuštěný proces # Jinak bysme mohli zabít komplet DE - vlastní # zkušenost je těžko přenositelná :D if [[ $PID_NA_ZABITI ]]; then # Výpis všech potomků zabíjeného skriptu a jejich zamordování pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs kill # Vymazání hodnoty PIDu PID_NA_ZABITI= fi ;;esacdone# Smyčka byla ukončena. Pokud je ještě skript aktivní# zamordujem jeho potomky včetně něho samotnéhoif [[ $PID_NA_ZABITI ]]; then pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs killfiSnad opraveno.
#! /usr/bin/env bash# úprava vedoucí k zabití celého skriptu místo procesu catPID_NA_ZABITI=navrat=1while [ $navrat -eq 1 ]; doodpoved=$(zenity --ellipsize --info --title "Test panelu GERCOM" \ --text="Zvolte funkci (režim SETUP je nutno ukončit vypnutím panelu!)" \ --extra-button MAZÁNÍ \ --extra-button MOŽNOSTI \ --extra-button VYPLŇH \ --extra-button SETUP \ --extra-button SOUBOR \ --extra-button SOUBKONEC \ --ok-label ZAVŘÍT_OKNO\ ) navrat=$?# Test návratové hodnotyif [ $navrat -eq 0 ]; thenif [[ $PID_NA_ZABITI ]]; then pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs killfi exit 0fi# Testy odpovědícase $odpoved inMAZÁNÍ) ./testmaz.sh & ;;VYPLŇH) ./testh.sh & ;; MOŽNOSTI) ./testmozn.sh & ;;SETUP) ./testsetup.sh & ;;SOUBOR) # Pokud už není PID, spusť skript # Předejde se vícenásobnému spuštění if [[ ! $PID_NA_ZABITI ]] || [ ! -d /proc/$PID_NA_ZABITI ]; then # skript je spuštěn na pozadí. ./testodeslsoub.sh & # nastavíme proměnnou na jeho PID PID_NA_ZABITI=$! fi ;; SOUBKONEC) # Test jestli existuje spuštěný proces # Jinak bysme mohli zabít komplet DE - vlastní # zkušenost je těžko přenositelná :D if [[ $PID_NA_ZABITI ]]; then # Výpis všech potomků zabíjeného skriptu a jejich zamordování pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs kill # Vymazání hodnoty PIDu PID_NA_ZABITI= fi ;;esacdone# Smyčka byla ukončena. Pokud je ještě skript aktivní# zamordujem jeho potomky včetně něho samotnéhoif [[ $PID_NA_ZABITI ]]; then pstree -A -p $PID_NA_ZABITI | grep -Eow "[0-9]+" | xargs killfi