Automatyczne wznawianie "padniętych" aplikacji
- bialyikar
- 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
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
- Dwimenor
- 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
Do aktywatora rhythboxa wrzuć:
Wersja czytelna dla człowieka:
Kod: Zaznacz cały
while true; do rhythmbox; if [ $? == 0 ]; then exit 0 else rhythmbox; fi done
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.
Powyższe zdanie jest prawdziwe.
- bialyikar
- 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
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:Dwimenor pisze:Do aktywatora rhythboxa wrzuć:Wersja czytelna dla człowieka:Kod: Zaznacz cały
while true; do rhythmbox; if [ $? == 0 ]; then exit 0 else rhythmbox; fi done
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
To samo zrobiłem z aktywatorem znajdującym się w katalogi /usr/share/applications. Pojawia się powyższy komunikat.Wystąpił błąd podczas uruchamiania programu.
Szczegóły: Wykonanie procesu potomnego "while" (Nie ma takiego pliku ani katalogu) się nie powiodło
Skrypt "dla człowieka"

Phenom x4 955 | 16Gb (goodram) | GA-MA770T-UD3 | GF 460GTX | SB Audigy 1 [SB0090] | Lifeview FlyVideo 98FM | Dell U2412M | KDE Neon
- 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
Spróbuj coś takiego mniej więcej (w aktywatorze):
Poza tym można chyba prościej?
Kod: Zaznacz cały
bash -c 'while true; do rhythmbox; if [ $? == 0 ]; then exit 0; else rhythmbox; fi; done'
Kod: Zaznacz cały
bash -c 'while rhythmbox;do true;done'
- Dwimenor
- 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
To uruchomi ponownie nawet jeżeli użytkownik sam zamknie program, a nie tylko jak się wywali.ethanak pisze: Poza tym można chyba prościej?Kod: Zaznacz cały
bash -c 'while rhythmbox;do true;done'
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ę.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.
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Powyższe zdanie jest prawdziwe.
- 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
Zakład o piwo?Dwimenor pisze:To uruchomi ponownie nawet jeżeli użytkownik sam zamknie program, a nie tylko jak się wywali.ethanak pisze: Poza tym można chyba prościej?Kod: Zaznacz cały
bash -c 'while rhythmbox;do true;done'
- Dwimenor
- 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
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.
Powyższe zdanie jest prawdziwe.
- 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
No bo mój błąd fakt - efekt pisania przed drugą kawą 
while ! rhythmbox powinno być. Idę na kawę. A u mnie masz piwo.

while ! rhythmbox powinno być. Idę na kawę. A u mnie masz piwo.
- bialyikar
- 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
Wydaje się, że ten kod działa bez większych problemów. Dzięki wszystkim za pomocethanak 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'

Phenom x4 955 | 16Gb (goodram) | GA-MA770T-UD3 | GF 460GTX | SB Audigy 1 [SB0090] | Lifeview FlyVideo 98FM | Dell U2412M | KDE Neon
Kto jest online
Użytkownicy przeglądający to forum: Bing [Bot] i 6 gości