Próbuję napisać skrypt powłoki bash w dystrybucji Linux Ubuntu 11.10, który zostanie wykonany automatycznie po zalogowaniu do systemu. Ale nie jestem w stanie dowiedzieć się, co napisać w skrypcie, który zostanie automatycznie wykonany po zalogowaniu.
ubuntu
shell-script
login
profile
dubeks
źródło
źródło
.sh
jeśli umieścisz w nim swój skrypt/etc/profile.d/
.chmode +x /etc/profile.d/myscript.sh
oczywiście też./usr/local/bin/pihole -c
polecenia autologin określonego użytkownika. Dodano tę linię do/home/$USER/.profile
- nic się nie dzieje. Po dodaniu skryptu/etc/profile.d
działa, ale działa globalnie i uruchamia go nawet po otwarciu sesji ssh (co nie jest tym, czego chcę). Dodawanie do.bashrc
działa też, ale działa za każdym razem, gdy otwieram nową powłokę (co nie jest tym, czego chcę). Pytanie: Dlaczego dodawanie do/home/$USER/.profile
nie działa?Wystarczy dodać skrypt bash do aplikacji Autostart.
W polu polecenia wpisz
źródło
Jeśli chcesz być bardziej specyficzny dla bash, możesz także napisać swój kod w ~ / .bash_profile lub ~ / .bash_login.
Możesz na nim znaleźć dowolny skrypt, na przykład:
źródło
/etc/profile
lub$HOME/.profile
lub$HOME/.bash_profile
Zdecydowanie odradzam używanie,
/etc/profile.d/yourscript.sh
jeśli produkuje dane wyjściowe. Gdy korzystasz z nieinteraktywnej sesji, otrzymasz$TERM is not set
wiadomość. Jest to zauważalne podczas korzystania z protokołu ssh, takiego jak scp. Zwykle nie jest to wielka sprawa, jednak Veeam nie lubi tego i rzuca ostrzeżenie. Wiem, że Veeam nie jest tutaj tematem, ale warto wspomnieć, że nie wszystkie aplikacje z wdzięcznością zignorują to$TERM is not set
ostrzeżenie.Krótko mówiąc, jeśli skrypt generuje dane wyjściowe, umieść je w lokalizacjach określonych w pierwszym wierszu. Jeśli jednak modyfikujesz środowisko, a skrypt nie generuje danych wyjściowych, użyj tego drugiego.
źródło