Jak automatycznie wykonać skrypt powłoki podczas logowania do Ubuntu


15

Jak uzyskać skrypt uruchamiający się automatycznie po zalogowaniu? Nie podczas uruchamiania komputera i nie dla wszystkich użytkowników, ale tylko wtedy, gdy ja (lub dowolny konkretny użytkownik ze skryptem) loguję się za pomocą interfejsu GNOME.

Po przeczytaniu gdzie indziej pomyślałem, że jest .bash_profilew moim katalogu domowym, ale dla mnie to nie ma żadnego efektu. Kiedy ręcznie wykonuję go w oknie terminala, wpisując ~/.bash_profile, działa, ale nie uruchomi się automatycznie po zalogowaniu.

Używam Ubuntu 11.04. Licencja na mój plik .bash_profile to-rwx------ . W moim katalogu domowym nie było pliku .bash_profile, zanim go utworzyłem.

Wydaje mi się, że pamiętam starsze wersje Linuksa, które mają .profileplik dla każdego użytkownika, ale to też nie działa.

Jak to jest zrobione? Czy muszę skonfigurować coś innego, aby plik .bash_profile działał? Czy może skrypt logowania dla użytkownika musi znajdować się w innym pliku?


.bash_profile, .profile i .bashrc (który jest faktycznie używany przez ubuntu) są ładowane za każdym razem, gdy otwierasz terminal bash. Więc właściwie nie jestem pewien, czy zostaną załadowane, jeśli zalogujesz się do GDM.
Juan Sebastian Totero

Publikowanie wersji Ubuntu może pomóc. W Ubuntu 10.10 .bashrc „działa dla mnie (TM)”.
Vlueboy

Masz na myśli, kiedy logujesz się do GUI lub do powłoki?
Flimzy,

bash ładuje je po uruchomieniu nowej powłoki, więc zostaną załadowane tylko po otwarciu okna terminala lub zalogowaniu się do wirtualnego terminala, a nie podczas logowania do Gnome (GDM).
shiftycow

Używam Ubuntu 11.04, jak wspomniałem w pierwotnym pytaniu.
Mike Rowave,

Odpowiedzi:


11

Możesz po prostu dodać następujące polecenie do System> Preferencje> Aplikacje startowe:

bash /full/path/to/your/script.sh

To powinno załatwić sprawę;)


Wiesz co, robiłem to wcześniej i to nie działało ... poza tym, że nie napisałem „bash” przed ścieżką skryptu! Spróbuję później z batem. Z ciekawości, kiedy wpisujesz coś za pomocą GUI w aplikacjach startowych, w którym pliku jest to zarejestrowane?
Mike Rowave

Programy startowe należy zarejestrować w/etc/xdg/autostart
shiftycow,

Działa dodawanie bash /home/myusername/scriptnamedo „aplikacji startowych”! Dzięki. Jednak może to być specyficzne dla GNOME na Ubuntu, dlatego zastanawiałem się, gdzie są zarejestrowane wpisy w tej pozycji menu „Aplikacje startowe”, ponieważ w innych współczesnych wersjach systemu Linux byłoby to bardziej podobne.
Mike Rowave,

2
/etc/xdg/autostartwydaje się być plikiem systemowym, niepowiązanym z użytkownikiem.
Mike Rowave,

Późniejsze wersje ubuntu znajdują się na askubuntu.com/questions/159887/…
TooTone

8

Zasadniczo, zgodnie z sugestią nodiscc , utwórz program uruchamiający pulpit: ~ / .config / autostart / script.desktop z następującą zawartością:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Następnie utwórz skrypt autostartu: ~ / bin / autostart z zawartością bash:

#!/bin/bash
# Execute bash script below

Upewnij się, że ~ / bin / autostart jest wykonywalny


5

Możesz dodać linię w crontab -

crontab -e

Następnie dodaj ten wiersz do pliku, który się otworzy:

@reboot /path/to/your/cool/script

Spowoduje to uruchomienie skryptu przy ponownym uruchomieniu. Aby uzyskać więcej informacji zobaczman crontab


Nie wiem dlaczego, ale nie mogę wykonać plików .sh w „aplikacjach startowych”, dlatego najłatwiejszym sposobem na zrobienie tego teraz jest cron
Albert Català


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.