Mam dwa skrypty - jeden do montowania niektórych folderów przez SSHFS - i jeden do odmontowywania.
Chciałbym uruchomić skrypt montowania, gdy uruchamiany jest mój domyślny pulpit Ubuntu (po zalogowaniu się na konsoli graficznej) - i skrypt odmontowany, gdy „Wylogowuję się” z koła zębatego w prawym górnym rogu pulpit.
Czy ktoś może mi powiedzieć, jak to osiągnąć? Jakie są najwygodniejsze / standardowe zaczepy do uruchamiania poleceń przy uruchamianiu / zamykaniu pulpitu?
Odpowiedzi:
Biorąc pod uwagę wymóg uruchomienia zadania podczas logowania do Unity, a nie innych logowań, zadanie sesji Upstart wydaje się idealne.
Być może zauważyłeś: procesy uruchamiane po zalogowaniu do GUI są w trakcie drugiego
init
procesu. Jestinit
to właściwa inicjacja Upstart i możesz uruchamiać i zatrzymywać zadania sesji na podstawie emitowanych przez nią zdarzeń. Nie są wymagane żadne uprawnienia roota. Jeszcze lepiej (lub gorzej w zależności od perspektywy), nie jest to jeszcze w pełni obsługiwane w systemach bezgłowych. Logowanie SSH nie rozpoczęło inicjacji użytkownika od szybkiego testu, który właśnie wykonałem.Aby utworzyć zadanie sesji, utwórz nowy
.conf
plik w~/.config/upstart
. Jest to domyślny katalog główny dla zadań sesji Upstart ($XDG_CONFIG_HOME/upstart
), utwórz go, jeśli nie istnieje. Oto przykładowa praca:Możesz to kontrolować ręcznie:
service
Polecenia służą do kontroli pracy systemu (w tych/etc/init.d
lub/etc/init
). Aby kontrolować zadania sesji, należy użyćinitctl
polecenia, które służy do interakcji z Upstart.Zobacz
man upstart-events
więcej wydarzeń, których możesz użyć.źródło
Rozwiązaniem było użycie zadań upstart. Wymagałem dwóch zadań - jednego uruchomionego podczas inicjalizacji pulpitu dla użytkownika; drugi, kiedy wygasa sesja użytkowników. Poniższe dwa skrypty działają dla mnie pod Ubuntu 14.04.
W ~ / .config / upstart / desktopOpen.conf
W ~ / .config / upstart / desktopClose.conf
Trzymam kciuki, aby wydarzenia te nadal spełniały wymagania w przyszłych wersjach Ubuntu. Pomyślałem, że warto opublikować tutaj moje rozwiązanie - na wypadek, gdyby było przydatne dla innych.
źródło
Oto kilka sugestii dotyczących uruchamiania skryptu po zalogowaniu:
Skrypt Linux StackOverflow po uruchomieniu : Cliff zauważa, aby umieścić plik * .sh w /etc/profile.d.
Jeśli chcesz uruchamiać skrypty podczas uruchamiania, oto kilka sugestii:
Skrypt Linux StackOverflow po uruchomieniu : Cliff zauważa, aby użyć /etc/rc.local lub crontab.
źródło