Automatyczne wznawianie "padniętych" aplikacji

Grafika, film, dźwięk.
Awatar użytkownika
bialyikar
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 149
Rejestracja: 12 cze 2009, 16:10
Płeć: Mężczyzna
Środowisko graficzne: Inne
Architektura: x86_64
Kontakt:

Automatyczne wznawianie "padniętych" aplikacji

Post autor: bialyikar »

Ostatnio kilka razy aplikacja Rhythmbox mi się wyłączyła i tak się zastanawiam, czy jest jakiś sposób na to, aby w takiej sytuacji mogła by się ona automatycznie uruchomić? Istotne by też było, aby system rozróżniał, czy aplikacja została wyłączona ręcznie, czy wyłączyła się z powodu jakiegoś błędu.
Phenom x4 955 | 16Gb (goodram) | GA-MA770T-UD3 | GF 460GTX | SB Audigy 1 [SB0090] | Lifeview FlyVideo 98FM | Dell U2412M | KDE Neon
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: Dwimenor »

Do aktywatora rhythboxa wrzuć:

Kod: Zaznacz cały

while true; do rhythmbox; if [ $? == 0 ]; then exit 0 else rhythmbox; fi done
Wersja czytelna dla człowieka:

Kod: Zaznacz cały

#!/bin/bash
while true; do
	#Uruchamiamy program. Póki program nie zostanie zakończony (obojętnie jak), póty kolejna część się nie wykona
	rhythmbox;

	#Program został zakończony. Sprawdzamy kod wyjścia ($?)
	if [ $? == 0 ]; then
	#Kod wyjścia 0 oznacza prawidłowe zakończenie programy (np. przez użytkownika). Kończymy działanie i nie uruchamiamy ponowanie.
		exit 0
	else
	#Każdy innym kod wyjścia oznacza jakieś nieprawidłowości. Uruchamiamy program ponownie
		rhythmbox;
	fi
done
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Awatar użytkownika
bialyikar
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 149
Rejestracja: 12 cze 2009, 16:10
Płeć: Mężczyzna
Środowisko graficzne: Inne
Architektura: x86_64
Kontakt:

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: bialyikar »

Dwimenor pisze:Do aktywatora rhythboxa wrzuć:

Kod: Zaznacz cały

while true; do rhythmbox; if [ $? == 0 ]; then exit 0 else rhythmbox; fi done
Wersja czytelna dla człowieka:

Kod: Zaznacz cały

#!/bin/bash
while true; do
	#Uruchamiamy program. Póki program nie zostanie zakończony (obojętnie jak), póty kolejna część się nie wykona
	rhythmbox;

	#Program został zakończony. Sprawdzamy kod wyjścia ($?)
	if [ $? == 0 ]; then
	#Kod wyjścia 0 oznacza prawidłowe zakończenie programy (np. przez użytkownika). Kończymy działanie i nie uruchamiamy ponowanie.
		exit 0
	else
	#Każdy innym kod wyjścia oznacza jakieś nieprawidłowości. Uruchamiamy program ponownie
		rhythmbox;
	fi
done
Pierwszy skrypt nie działa. Utworzyłem aktywator na pulpicie i we właściwościach, w polu Polecenie wpisałem podany skrypt. Uruchomienie aktywatora zwraca komunikat:
Wystąpił błąd podczas uruchamiania programu.
Szczegóły: Wykonanie procesu potomnego "while" (Nie ma takiego pliku ani katalogu) się nie powiodło
To samo zrobiłem z aktywatorem znajdującym się w katalogi /usr/share/applications. Pojawia się powyższy komunikat.
Skrypt "dla człowieka" ;) odpala Rhythmboxa i uruchamia go ponownie w przypadku padnięcia programu, ale uruchamianie przez taki skrypt mnie średnio zadowala. Wolał bym robić to w standardowy sposób, odpalając aktywator z panelu Unity/Dasha.
Phenom x4 955 | 16Gb (goodram) | GA-MA770T-UD3 | GF 460GTX | SB Audigy 1 [SB0090] | Lifeview FlyVideo 98FM | Dell U2412M | KDE Neon
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: ethanak »

Spróbuj coś takiego mniej więcej (w aktywatorze):

Kod: Zaznacz cały

bash -c 'while true; do rhythmbox; if [ $? == 0 ]; then exit 0; else rhythmbox; fi; done'
Poza tym można chyba prościej?

Kod: Zaznacz cały

bash -c 'while rhythmbox;do true;done'
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: Dwimenor »

ethanak pisze: Poza tym można chyba prościej?

Kod: Zaznacz cały

bash -c 'while rhythmbox;do true;done'
To uruchomi ponownie nawet jeżeli użytkownik sam zamknie program, a nie tylko jak się wywali.
bialyika pisze:Skrypt "dla człowieka" ;) odpala Rhythmboxa i uruchamia go ponownie w przypadku padnięcia programu, ale uruchamianie przez taki skrypt mnie średnio zadowala. Wolał bym robić to w standardowy sposób, odpalając aktywator z panelu Unity/Dasha.
Wrzuć sobie taki skrypt do ~/.local nadaj mu prawa do wykonywania i w aktywatorze wskaż ten skrypt. Ale to tak na przyszłość. Wersja ethanka będzie działać, sam zapomniałem że w aktywatorach polecenie nie idzie bezpośrednio na powłokę.
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: ethanak »

Dwimenor pisze:
ethanak pisze: Poza tym można chyba prościej?

Kod: Zaznacz cały

bash -c 'while rhythmbox;do true;done'
To uruchomi ponownie nawet jeżeli użytkownik sam zamknie program, a nie tylko jak się wywali.
Zakład o piwo?
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: Dwimenor »

Sprawdzone empirycznie, więc nie ma się o co zakładać. Za to jak się program ubije (killall, kill -9) to nie wstaje ;)
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: ethanak »

No bo mój błąd fakt - efekt pisania przed drugą kawą :)
while ! rhythmbox powinno być. Idę na kawę. A u mnie masz piwo.
Awatar użytkownika
bialyikar
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 149
Rejestracja: 12 cze 2009, 16:10
Płeć: Mężczyzna
Środowisko graficzne: Inne
Architektura: x86_64
Kontakt:

Re: Automatyczne wznawianie "padniętych" aplikacji

Post autor: bialyikar »

ethanak pisze:Spróbuj coś takiego mniej więcej (w aktywatorze):

Kod: Zaznacz cały

bash -c 'while true; do rhythmbox; if [ $? == 0 ]; then exit 0; else rhythmbox; fi; done'
Wydaje się, że ten kod działa bez większych problemów. Dzięki wszystkim za pomoc :)
Phenom x4 955 | 16Gb (goodram) | GA-MA770T-UD3 | GF 460GTX | SB Audigy 1 [SB0090] | Lifeview FlyVideo 98FM | Dell U2412M | KDE Neon
ODPOWIEDZ

Wróć do „Muzyka, filmy, zdjęcia, grafika”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 6 gości