Uruchamianie wybranego skryptu na starcie systemu

Cześć! Chciałbym, aby przed załadowaniem środowiska graficznego, dwa programy były już załadowane. Nie wiem, czy można to zrobić na zasadzie załączanych serwisów, czy może da się inaczej i, prościej? Umyśliłem sobie, że np w folderze /etc utworzę pliki wykonywalne “cpu-power”, “cpuconfig” z treścią np
#!/bin/bash
cpu-power
i analogicznie drugi plik. Serwis chciałbym zastosować

[Unit]
Description=cpu-power

[SERVICE]
RemainAfterExit=yes
ExecStart=/etc/cpu-power start
ExecStop=/etc/cpu-power stop

[Install]
WantedBy=multi-user.target

Czy to ma szansę zadziałać prawidłowo?

NIe lepiej umieścić je w /usr/local/bin – to jest zwykle rekomendowane miejsce na globalne customowe skrypty/programy. I ma ten plus, że jest już obecna w PATH. Tak swoją drogą ten skrypt ci nie zadziała, bo nie przyjmuje żadnych argumentów (pomijam już fakt wywoływania tylko jednego polecenia w skrypcie, które można de facto wywołać bezpośrednio z ExecStart i ExecStop. Jeśli jednak upierasz się przy osobnym skrypcie to poprawna wersja powinna wyglądać następująco:

#!/bin/bash
cpu-power $1

Oczywiście, jeśli skrypt ma przyjmować więcej argumentów (np. cpu-power start -x -y -z) to musisz je dodać w analogiczny sposób. Tak poza tym trudno powiedzieć czy zadzała skoro nawet nie wiemy co ma robić, czy ma jakieś zależności lub inne specyficzne wymagania.

1 polubienie

@Tomek dokładnie to chodzi o cpupower-gui, który miałby startować automatycznie z ustawionym już taktowaniem. O ile serwis zadziałał, o tyle program już nie uruchomił się w trybie gui. Dodanie do autostartu kde, też nie działa. Batmon rusza jak trzeba, ale ważniejsze dla mnie jest, aby taktowanie CPU, jak najwcześniej osiągało maksymalną wartość 800Mhz.

Myślę że warto poczytać dokumentację cpupower-gui, a nie wymyślać koło od nowa.

Paczka dostarcza usługi systemd, omówione jest też tworzenie własnych profili.

2 polubienia

Poza tym co kolega wyżej napisał nie mam nic do dodania. Może poza tym, że cpupower-gui jest tylko graficzną nakładką na cpupower (domyślnie preinstalowane w Manjaro, przynajmniej w nowszych ISO), więc możesz obyć się bez niego :wink:

Chłodny ton, spłynął po ścianach :grin: zaciągnąłem wersję git, ale niestety najpewniej coś źle to wykonałem, bo nie działa :laughing: dzięki jednak za lekturę, która pewnie rozwiąże moje problemy.

Edycja: Niestety, albo jestem tępy do potęgi entej, albo coś jednak nie działa jak należy. Mimo uruchomienia i ustawienia na “enable” cpupower.service, ten nie chce startować przy uruchamianiu, o czym dostaję komunikat. Zmieniłem jak radzono, sterownik pstate na acpi, ale nie tu zdaje się, tkwi kłopot.

W pierwszej kolejności trzeba zajrzeć w logi journalctl -u cpupower.service

1 polubienie

@Tomek bardzo dziękuję. Okazało się, że ustawionego mam zarządcę, który nie jest obsługiwany. Ustawienie “powersave”, rozwiązało sprawę. Pozostaje jeszcze ustawienie dla tego profilu, najniższego taktowania.

Tu raczej nie ma się nad czym zastanawiać – jeśli korzystasz z gui to wyklikujesz ustawienia i zapisujesz ustawienia. Jeśli zaś nie korzystasz z gui to edytujesz /etc/default/cpupower zgodnie z potrzebami.

No nie do końca @Tomek Zapis ustawień z gui, nie powoduje, że zostają zachowane. Edycja pliku wskazanego przez Ciebie, tzn wpisy max, min, też niczego nie dają. Governor uruchamiany jest w trybie shedutil, choć wcześniej mając taki zapis w grub, powodował brak autostartu. Gdzieś doczytałem, że trzeba wyłączyć ondemand, bo to ten zarządca, powoduje kłopoty. Dziwne to, bo mając teraz w grub, wybrany powersave, uruchamia się schedutil, a mając odwrotnie, czyli schedutil, to całkiem nie startuje. Nie jest to jakiś mega kłopot i, z czasem na pewno dojdę co robię nie tak. Serdeczne dzięki, za zainteresowanie!

To dziwne, bo u mnie tak to właśnie działa i działa bezbłędnie. Gruba nie tykałem, jako że on nie ma tu nic do rzeczy. Mam wrażenie, że niepotrzebnie komplikujesz konfigurację, bo tak naprawdę to wszystko powinno się sprowadzać do: instalacji programu, włączenia usług, wyklikania upragnionych ustawień i kliknięcia przycisku Apply – dokładnie tak to działa w moim przypadku.

1 polubienie

@Tomek wygląda, że nie tylko ja, mam z tym problem. What is changing my cpupower governor? - #13 by nikgnomic - Support - Manjaro Linux Forum rozwiązanie z tego tematu, poskutkowało. Oprócz edycji pliku cpupower w /etc/default, utworzyłem plik service dla usera. Teraz startuje cpupower-gui z ustawionymi zegarami, ale… Profile użytkownika nie działają, a zarządca nadal występuje jako schedutil :smiley:

Dla mnie to jasny znak, że nie masz włączonego cpupower-gui.service. Albo że ta usługa się wykrzacza – w takim razie zajrzyj w logi.

No jak sprawdzałem wedle polecanej instrukcji poprzez komendę systemctl status, to wszystko wyglądało ok. Dodanie kolejnej usługi, dopiero rozwiązało kłopot. Może zależne to od sprzętu, może nie potrzebnie wyłączyłem sterownik p-state, a może to kwestia środowiska, że np w Gnome działa od strzała, a w KDE już nie koniecznie.
A czy cpupower potrafi, rozpoznać podpięcie zasilania i wyłączyć tryb oszczędny?

Nie, bo nie został do tego stworzony. Za to odpowiadają (chyba) w każdym DE moduły odpowiedzialne za zarządzanie zasilaniem. W KDE akurat dość łatwo możesz podpiąć pod to swoje własne skrypty.

1 polubienie

Co do samego tematu, to zdaje się, owe zdanie wiele może tłumaczyć:
" Alternatively, configure the cpupower utility and enable its systemd service but it also does not work for every CPU.