Mam skonfigurowane niektóre aplikacje do automatycznego uruchamiania przy każdym logowaniu (np. Redshift-gtk, gtg) automatycznie, ale po dodaniu ich do aplikacji startowych ( System -> Preferences -> Startup Applications
) oczywiście czas potrzebny na zalogowanie się wydłużył. Z tego powodu czas potrzebny na pojawienie się paneli, pulpitu itp. Jest zbyt długi - na co jestem zmuszony czekać.
Nie potrzebuję, aby te aplikacje były dostępne natychmiast, ale byłoby dobrze, gdyby ostatecznie się uruchomiły, tymczasem menu / panel ubuntu jest dostępny do uruchamiania innych aplikacji, które mogą być potrzebne.
Próbowałem użyć polecenia, z myślą o edycji wszystkich aplikacji startowych, aby umieścić polecenia w kolejce, ale to nie zadziałało, ponieważ aplikacje nie otrzymały niezbędnych zmiennych środowiskowych (takich jak DISPLAY).
Czy do tego nice
służy polecenie? Wszelkie inne pomysły, jak to osiągnąć? Jeśli to możliwe, chciałbym uniknąć edytowania poleceń aplikacji startowych, ponieważ oznaczałoby to duży wysiłek przy replikacji na innych komputerach, których używam.
Odpowiedzi:
Liczba sekund potrzebnych do oczekiwania na załadowanie pulpitu jest dowolna i może się zmieniać w zależności od sytuacji. Zamiast tego
sleep
spróbuj użyć następujących poleceń, aby uruchomić aplikacje startowe, gdy tylko obciążenie systemu spadnie:(Edycja: Dodano sugestię koushika).
Zapisz go jako
~/bin/run-when-load-low
i dodajrun-when-load-low 'COMMAND'
w Preferencjach aplikacji startowych.Uwagi na temat tej metody:
DISPLAY
do aplikacji tylko zmienną środowiskową. W przypadku większości aplikacji komputerowych będzie to wszystko, czego potrzebujesz. Mając to na uwadze, pamiętaj o rozważeniu specjalnych przypadków i pamiętaj o tym podczas rozwiązywania problemów z czymś, co nie działa poprawnie. Dobrym miejscem do rozpoczęcia, jeśli uważasz, że aplikacja może wymagać przekazania innych zmiennych środowiskowych, jestprintenv
dokumentacja aplikacji, chociaż osobiście nie napotkałem jeszcze tego problemu.batch
dotyczy tylko gdy aplikacje są run; nie zmienia to ich priorytetu / ważności.run-when-load-low 'gedit My\ Notes.txt'
. Jeśli naprawdę potrzebujesz, aby przekazać parametry pojedyncze cytowany do aplikacji, będziesz musiał użyć cudzysłowów w poleceniu startowym:run-when-load-low "gedit 'My Notes.txt'"
. W przypadku bardziej skomplikowanych rzeczy najlepiej jest po prostu zmodyfikować kopię skryptu za pomocą polecenia zakodowanego na stałe.źródło
batch
? Czy możliwe jest także zmniejszenie obciążenia procesora przed całkowitym zakończeniem ładowania pulpitu (powiedzmy, czekaniem na dysk do załadowania niektórych ikon) i uruchomieniem tych aplikacji, co skutkuje podobną sytuacją jak poprzednio? Innymi słowy, czy polecenia są uruchamiane partiami z natury niższym priorytetem, które dają, gdy inne aplikacje chcą uruchomić?batch
kolejce jako nadal działająca, więc proces uruchomiłem również w tle. Zmodyfikowana linia wygląda następująco:echo "export DISPLAY=$DISPLAY; notify-send 'Running on Load low' '$1' && $1 &" | batch
Odkryłem, że samo użycie
sleep 10 && COMMAND
jako nazwy polecenia nie działa. Miałem problemy z zbyt wczesnym ładowaniem conky i xchat i jakoś zepsucia. Musiałem napisać mały skrypt o nazwie~/bin/startup
i umieścić w nim:Musisz zmienić jego uprawnienia, aby można było go wykonać,
chmod +x ~/bin/startup
a następnie po prostu zastąp wpis aplikacji startowej poleceniem,startup
a wszystko uruchomi się w skrypcie.Mógłbyś mieć jeden plik dla każdej aplikacji, gdybyś był tak skłonny.
źródło
sleep
Będzie nie opóźniać uruchamianie. Aplikacje rozruchowe nie blokują, co oznacza, że można załadować więcej niż jedną rzecz na raz.sleep
ing pozwala reszcie gnomu załadować, a następnie załadować mniej istotne rzeczy.Użyj polecenia „uśpienia”.
W System -> Preferencje -> Aplikacje startowe, edytuj polecenie programów, które chcesz opóźnić:
Zamień 10 na liczbę sekund, na które ma czekać, a POLECAM na to, co pierwotnie było w polu poleceń.
źródło
COMMAND &
(działające w tle) działałoby.