W systemie Linux na pulpicie chcę wykonać polecenie, gdy użytkownik się zaloguje.
Po przeczytaniu kilku innych postów próbowałem wstawić polecenie ~/.bashrc
ale bezskutecznie. Co więcej, system używa interfejsu graficznego do logowania użytkownika, więc polecenie nie powinno być powiązane z początkiem powłoki.
Próbowałem również dołączyć polecenie do jednego ze skryptów zawartych w /etc/profile.d
bez rezultatów.
Czy jest na to inny sposób? Jakiś plik, który system czyta po zalogowaniu?
Odpowiedzi:
Nie ma gwarancji, że graficzny menedżer wyświetlania odczyta klasyczne pliki startowe. To zmienia się między dystrybucjami i między menedżerami wyświetlania. Powinno jednak działać jedno z poniższych.
Użyj natywnej metody środowiska pulpitu, aby ustawić aplikacje startowe. Szczegóły będą zależeć od używanego DE, ale możesz utworzyć skrypt, który uruchamia twoje polecenie i dodać go do listy aplikacji startowych. Na przykład w moim systemie (Cinnamon) możesz to zrobić poprzez „Ustawienia systemu” => „Aplikacje startowe”.
Użyj
~/.xprofile
, to jest pozyskiwane przynajmniej przez menedżerów logowania GDM, LDM, LightDM i LXDM.Jeśli żadne z powyższych nie działa, spróbuj dodać polecenie do
~/.profile
: Jest to główny plik inicjujący powłoki logowania, a także odczytywany przez niektóre powłoki graficzne podczas logowania.Jak zauważył @derobert w komentarzach, możesz także użyć darmowych standardów pulpitu :
Jest
~/.bashrc
to tutaj całkowicie nieistotne, jest odczytywane tylko przez interaktywne powłoki niezalogowane, więc jest ignorowane w powłokach logowania, graficznie lub nie.źródło
~/.config/autostart
i/etc/xdg/autostart/
jakie są standardowe lokalizacje zgodnie ze specyfikacją autostartu aplikacji komputerowej . A także/etc/X11/Xsession.d
i~/.xsession
.Inną opcją jest użycie pam - da ci to precyzyjny sposób definiowania akcji podczas logowania.
W przypadku akcji ogólnej możesz polegać na pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ). Jeśli jednak musisz wykonać bardziej konkretną akcję w bezpieczny sposób, mogą istnieć bardziej wyspecjalizowane moduły pam, które będą lepiej pasować, takie jak powszechnie używany pam_mount (dla montowań podczas logowania - http: //manpages.ubuntu). com / manpages / hardy / man8 / pam_mount.8.html ) lub pam_echo (dla dowolnych wiadomości dla użytkowników - http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).
Ogólnie pam jest bardzo fajnym systemem do dostosowywania loginów, więc możesz chcieć przyjrzeć się temu bardziej, zamiast polegać na potencjalnie niebezpiecznych skryptach, jak sugerowali inni.
Przykład
Biorąc pod uwagę dość typowy /etc/pam.d/system-auth możemy zastosować pam_exec po zalogowaniu w następujący sposób:
gdzie
/usr/local/bin/my_prog
jest uruchamiany dowolny program po pomyślnym zalogowaniu użytkownika.źródło
pam
konfigurację, ponieważ nie jest to trywialne.Zgodnie z tym tematem: Uruchomić polecenie automatycznie po zalogowaniu?
Masz rozwiązanie
.bashrc
(nie to, czego potrzebujesz) i rozwiązanie aplikacji startowych. Cytuję Daniela S .:źródło