Właśnie zainstalowałem Ubuntu 14.04 beta2
i spośród 25 prób wylogowania, zamknięcia lub ponownego uruchomienia, moja sesja nie zakończyła się Firefox
poprawnie 23 razy przy wychodzeniu. Rezultatem jest strona odzyskiwania zakładek Firefox, która nigdy się nie zdarza, jeśli wcześniej ręcznie zamknę Firefox.
Ponieważ działał 2/25 razy, wydaje się, że jest to problem czasowy, w którym Ubuntu nie pozwala na zakończenie czasu Firefoksa (Ubuntu wylogowuje się po około 1-2 sekundach). Nigdy nawet nie otrzymałem „czekać na Firefoksa? okno dialogowe, które obserwowałem pod 12.04.
Więc jeśli mam rację, jak to zrobić, aby czekało? Jeśli nie, na czym polega problem i jak rozwiązać nieprawidłowe wyjście?
Nie mam doświadczenia w zarządzaniu plikami konfiguracji profilu lub sesji, a bardzo mało w bashu (rozumiem, ale kiepsko je koduję). Więc jeśli nie możesz odpowiedzieć, ale masz dobry artykuł na temat tego, jak profile / sesje działają w systemach Unix / Linux / Debian / Ubuntu (jeśli są takie same) i / lub jak wprowadzić zmiany w zdarzeniach logowania / wylogowania, bądź z tego szczęśliwy.
Edycja: Wykonałem dodatkowe testy, które dodatkowo wskazują, że to kwestia czasu
wmctrl -c firefox; sleep 0.5; sudo shutdown now -r
działa dobrze 100%wmctrl -c firefox; sleep 0.2; sudo shutdown now -r
działa dobrze 50%wmctrl -c firefox; sudo shutdown now -r
działa dobrze 10%sudo shutdown now -r& wmctrl -c firefox
nigdy nie działa ...
Tak więc, jak to obejść, jak mogę zapisać wmctrl -c firefox; sleep 0.5
w pliku, który przypomina .profile
lub bash_logout
wylogowuje się z sesji?
Odpowiedzi:
Najwyraźniej nie ma dedykowanego pliku do zapisu, tak jak kiedyś. To był
/etc/gdm/PostSession
pod Gnomem, ale nie jest dostępny, ponieważ najwyraźniej Jedność. A umieszczenie skryptu pod/etc/rc0.d/
i/etc/rc6.d/
nie będzie działać, ponieważ są one wykonywane dopiero po zamknięciu Xserver.Istnieje jednak zdarzenie zwane
gnome-save-yourself
odpalonym, gdy gnome został poproszony o wylogowanie. Jestem, jakgedit
na przykład, domyślnie zadzwonię. A Seamus Phelan stworzył skrypt w języku Python, aby wysłuchać zdarzenia i uruchomić skrypt, gdy zostanie złapany.Oto link do rozwiązania: Wykonywanie skryptu przy wylogowaniu użytkownika (użytkownik inny niż root)
Postępuj zgodnie z instrukcjami, a następnie umieść skrypt, który może wyglądać następująco:
gdzie opcja
-c
delikatnie zamyka Firefoksa, podobnie jak w-cmd "Quit"
przypadku gMusicBroswer. Zarówno Firefox, jak i gMusicBrowser muszą być poprawnie zamknięte, czego nie robią.Prawdopodobnie lepszym sposobem byłoby sprawdzić zastosowanie
SIGTERM
,SIGKILL
akill timeout
w Ubuntu i programów, ale nie wiem wystarczająco dużo o nim.źródło