Strona 1 z 1
Automatyczne wznawianie "padniętych" aplikacji
: 24 cze 2012, 22:13
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.
Re: Automatyczne wznawianie "padniętych" aplikacji
: 25 cze 2012, 08:05
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
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 00:22
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.
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 07:21
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?
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 08:46
autor: Dwimenor
ethanak pisze:
Poza tym można chyba prościej?
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ę.
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 09:31
autor: ethanak
Dwimenor pisze:ethanak pisze:
Poza tym można chyba prościej?
To uruchomi ponownie nawet jeżeli użytkownik sam zamknie program, a nie tylko jak się wywali.
Zakład o piwo?
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 11:01
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

Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 11:26
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.
Re: Automatyczne wznawianie "padniętych" aplikacji
: 26 cze 2012, 21:59
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
