XFCE autostart megoldások

XFCE, a kedvenc felületem :)
XFCE, a kedvenc felületem 🙂

Automatikusan induló programok XFCE alatt, azaz autostart lehetőségek. Érdekes mód időnként valami fura oknál fogva kiderítik a „közösségi médiában”, hogy XFCE nem tudja automatikusan, az induláskor indítani a programokat. Természetesen VAN az XFCE alatt is indítópult, autostart, ami a kívánt programokat elindítja a rendszer induláskor. Mivel az MX Linuxot használom most, így az elérési utak és egyebek ehhez a rendszerhez lesznek megadva, de nagyon nagy a valószínűsége, hogy más disztribúciók alatt is hasonlóképp van.
Előbb általánosságban átnézzük a hivatalos utakat, majd keresünk alternatív megoldásokat is.

XFCE autostart, a hivatalos út

A rendszer indításkor automatikusan indítandó programokat lehet itt beállítani, grafikusan.
A Beállítások > Munkamenet és indítás > Automatikusan induló alkalmazások fülön lehet beállítani ezeket.

Autostart fül
Autostart fül

Alapértelmezetten a program név előtt lévő kis pipát kell ki vagy betenni. Ez nem okozhat senkinek gondot. Itt azok találhatóak meg, melyek vagy az XFCE szerint automatikusan kellene indítani, vagy már az adott programban kértük, hogy legyen szíves automatikusan indulni.
Sok program már intelligensen fel lett készítve erre, így különösebb feladatunk nincs. Érdemes minden programnál körbenézni, mert nincs annál kényelmesebb, ha már ott megadhatjuk az autostart lehetőséget.
Az elő feladat tehát a már kilistázott programok átnézése: kell, avagy nem. Ha valami nem ismerős mindenképp olvass utána mit takar a bejegyzés! Kellemetlen lehet, ha olyant iktatsz ki, ami fontos a rendszernek.

Kis kitérő

Az automatikusan induló programok, az autostart nagyon kényelmes lehetőség. Ennek ellenére érdemes mindegyik programot (főleg a felhasználóit) egyesével átnézni. A túl sok program lassítja az indítási folyamatot, lassíthatja a gépedet. Az indítási folyamat lassulása a sok egy időben indulni szándékozó program miatt lesz. Így ezt kezelni kell, bár a rendszer ezt az autostart folyamatban viszonylag jól szabályozza. Csak azt indítsuk, ami kell. De azokat mindenképp. A mai gépekben jellemzően van elég erőforrás, hogy megfelelő mennyiségű elindított, de esetleg inaktív, éppen nem használt programot kezelni tudjon.

XFCE autostart, ami nem startkor fut le

Bár mi mindig az autostart témakörben az induláskor, a loginkor elinduló programokat, szolgáltatásokat emlegetjük, de ennél sokkal komolyabb feladatra is képes a Linux rendszer. Az előbb elindított program utolsó oszlopában megadhatjuk mikor legyen végrehajtva a feladat. Akár leállításkor, akár rendszer indításkor, akár pedig újraindításkor is. Így jól skálázható automatizmust rakhatunk össze.

Skálázható autostart
Skálázható autostart

Ez sok esetben feleslegesnek tűnik, olyannak, amit jobb, ha a rendszerünk maga intéz. Nem. Van létjogosultsága ennek is. Kilépéskor például lehet egy adatmentést lefuttatni, de lehet olyan átmeneti tárak üríteni, mint a böngésző előzmények stb. De jó ötlet lehet a főbb rendszerállományokat, a konfigurációs fájlok mentése induláskor, hogy legyen egy olyan mentés, amivel elindult biztosan a rendszer. Tág a lehetőség, érdemes legalább ismerni, hogy az autóstart megoldások nem csak az induláskor elindított pár rendszereszközt és pár felhasználói programot jelentenek.
Ezt a skálázhatóságot érdemes megnézni ha régebb óta nem néztél rá erre a panelre, mert ez egy viszonylag új lehetőség, nem mindegyik leírás tárgyalja!

Ha nem szerepel az autostart listában?

Eddig ez nagyon egyszerű, de mi van akkor ha én olyant akarok indítani ami nem szerepel a listában és a program nem is ajánlja fel sehol, hogy automatikusan indul? Erre két mód van.
Az elsőt maga a panel adja: van egy + Hozzáadás gomb, ami nem meglepő mód ezt a funkcióját takarja.
Itt megadhatjuk a program nevét, amit a listában látni akarunk, majd egy leírást és magát a parancsot, ha kell, akkor paraméterekkel együtt. A kis mappa ikonnal tallózni is tudunk. Szuper és egyszerű megoldás.

Saját autostart megadása
Saját autostart megadása

Itt megadhatunk terminálos parancsokat is, bár szerintem elég kényelmetlen módja hosszabb, összetettebb parancs megadása. Ilyenkor vagy az összetett parancsot beírjuk egy szkriptbe, és azt futtatjuk, vagy a későbbiekben bemutatott megoldást alkalmazzuk.
A másik megoldás már kicsit haladóbb, de ez sem okozhat gondot. Az MX Linux alatt, de nagy valószínűséggel más disztribúcióknál is a
/etc/xdg/autostart illetve ~/.config/autostart mappában lévő .desktop fájlokat figyeli az XFCE és azokat sorolja fel az előző panelban kiválasztásra. Ez adja a megoldást egyik lehetséges módját:
Az MX Linux, illetve pontosabban az XFCE a usr/share/applications/ mappában tartja az általa ismert; a programok, vagy a rendszer által létrehozott .desktop fájlokat. Az ilyen fájlokat már lehet, hogy használtuk, hiszen a tint2-es panelba ezeket tudtuk beállítani, az indító pultunkhoz.
Így nagyon kényelemes megoldás az indítandó program .desktop fájljainak bemásolása a ~/.config/autostart mappába. Vagy persze lehet linkelni is, ha azt jobbnak tartja valaki. Így máris ki-be kapcsolható lesz az automatikus indításnál az adott program. Vegyük figyelembe, hogy MX Linux alatt a rendszerhez tartozó mappák így az usr/share/applications/ root joggal használható, így a másolásnál is kell az emelt jogosultság. Ez valószínűleg máshol is így van.

Ha nincs desktop fájl?

Akkor nincs egyéb teendő, létre kell hozni. A fájl felépítése nagyon egyszerű, de mi az egyszerűt is leegyszerűsítjük.
Egy lebutított .desktop ennyit tartalmaz:

[Desktop Entry]
Encoding=UTF-8 # kódolást mutatja, ha ékezetes karakter is használsz, fontos lehet
Name= Programom neve # Amilyen néven a listába kerüljön
Comment=Szuperjó program, ami semmit nem csinál # kis magyarázat a programhoz, elhagyható
Exec=program -nopw -noxdamage -forever -loop500 # a parancs és a kapcsolók
Terminal=true # Terminálban fusson, vagy ne. Ha tipikusan grafikus programot futtatsz, akkor nyilván „fals” a jó választás.

Ennyi a minimum elvárás. Ha gyorsabban írsz meg egy ilyent, akkor jobb, mint az eredeti panelos megoldás. Ha sokat akarsz, vagy rendszeresen hozol létre ilyen fájlokat, akkor egy sablont készítve a Sablonok könyvtárban, a jobb egérgombbal Új Fájl… menüben gyorsan kapsz egy új, csak kitöltendő .desktop alapot.

Én azért is szeretem az MX Linuxot, mert törekszik az egyszerűségre. Nekem túl macerás egy-egy indítandó programnál belépni a Beállítások > Munkamenet és indítás > Automatikusan induló alkalmazások fülre, majd kitöltögetni a mezőket.
A .desktop fájl hasonlóan macera, egyesével kell létrehozni minden egyes autostart programhoz.

Gyors, mobil autostart XFCE alatt

Ha tudunk a gyári XFCE megoldással szkriptet futtatni, akkor adja magát a megoldás: pakoljuk vele a szkripte az indító parancsokat szépen, egymás után. Paraméterezve, mintha terminálból indítanánk.

Igencsak kényelmes, mert a kívánt parancsot csak be írjuk, majd a következő sorba a következőt. Egy megnyitott fájl, és minden mehet egyszerre.
A megoldás nyilván egyszerű: létre kell hozni egy parancsfájlt, szkriptet, amit meg el kell indítani automatikusan az induláskor. Ezt egyszerű, hiszen már tudunk scriptet írni, amit be is tudunk rakni az elérési útba, majd azt is tudjuk, hogy egy parancsot miképp kell indítani az XFCE indulásakor.
A scriptem egypár sora, csak példának:

!/bin/bash

Start tint2 oldalsó és alsó panel

tint2 -c /home/laci/.config/tint2/also.tint2rc &
tint2 -c /home/laci/.config/tint2/oldalso.tint2rc &

Shutter indítása

shutter --min_at_startup &

Vágólapkezelő

clipit &

Redshift

redshift -l 55.7:12.6 -t 5700:3600 -g 0.9 -m randr -v &
…..

Ha kész, akkor csak futtathatóvá kell tenni, majd egy .desktop fájl bejegyzést készíteni és a következő indításkor már minden indulni fog. A .desktop fájl mintának:

[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Name=AutoStart
Comment=Amit indítani akarok
Exec=’/home/laci/bin/start’
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false

Így gyakorlatilag már indításkor startol az összes program, amit akarok, lefut pár ellenőrzés, mentés, tisztítási folyamat.
Ami fontos: minden lefutó, induló program erőforrást használ, így tartsunk mértéket. Csak azt indítsuk el, ami kell nekünk és ne mindet, ami eszünkbe jut.

Itt érdemes ütemezni a feladat végrehajtást, mert nagy torlódás lehet ha mindet egyszerre akarunk indítani. A nem azonnal kellő programok (pld. a shutter, képernyőmentő program) a végére kerülhetne, és kaphatna egy késleltetést: sleep 3 && command. Ez általában jól működik.

Az előbb megbeszéltük, hogy nem csak induláskor futtatható le egy program. Így akinek van kedve több ilyen szkriptet is készíthet és az Automatikusan induló alkalmazások panelban a megfelelő attribútumot adhatja. Így leálláskor, vagy csak újraindításkor vagy egyéb helyzetekben lefutó készletet is összeállíthatunk, viszonylag hatékonyan.

A megoldás erőssége az egyszerűség, illetve a mobilitás. Mivel gyakorlatilag egy futtatható állományt használunk, bármelyik ablakkezelőhöz, vagy asztali környezethez adaptálhatjuk.

Unortodox  megoldás

Bár sokan furának, vagy egyenesen szentségtörőnek tartják, de automata, időzített indításokra felhasználható a cron rendszer is. Nem kell a cron-tól idegenkedni, nagyon egyszerűen használható MX Linux alatt! A Job Scheduler beépített lehetőségét a kép is mutatja:

Cron beállítása MX Linux alatt
Cron beállítása MX Linux alatt

De gyakorlatilag minden Linux stb. rendszeren futtatható a cron valamilyen variációja. Jelenleg nekünk két alapvető megoldást kell ismerni

@reboot parancs

A crontab-ba (crontab -e) a em>@reboot</em után adhatjuk meg a parancsokat, pont úgy, mint normál esetben, csak itt nem időpontokat adunk, hanem egy általános parancsot: akkor futtasd, amikor reboot van.
Itt is fontos, hogy a parancs atombiztos, letesztelt legyen, mert nam nagyon kapunk hibajelentést.

@reboot sleep [time in seconds] && [path to job]

A fenti megoldás logikusan kikövetkeztethető felhasználása: a megadott idő után futtassa le. Így biztosan nem torlódnak az autostart feladatok.

Logikus,de…

Az autostart és a hozzátartozó lehetőségek nagyon kényelmesek. Ha azokat észszerűen állítjuk össze. Ne csak arra figyeljünk, hogy ne indítsunk mindent azonnal, hanem arra is, hogy van amikor a feladatok csak egymás után végezhetőek el. Amíg az internetkapcsolat nem áll fel, addig a levél letöltés nem lehetséges, vagy a mentéshez nem árt, ha megvárja a mentő program, hogy a céleszközt felcsatolja a rendszer. Így minden újabb beállítást teszteljünk le. Gondoljuk át a lehetséges hibákat és ha lehet, akkor azt a szkriptben (ha azt használunk) kezeljük le.

Related Posts