A Linux parancsok és parancsfájlok automatikus futtatása a rendszer újraindításakor

How Run Linux Commands



Az alkalmazások és parancsfájlok automatikus futtatása indításkor hasznos lehet a gyakori rendszerindítási feladatok és események automatizálásához. Ez a cikk elmagyaráz néhány módszert, amelyekkel alkalmazások és szkriptek indíthatók újraindításkor vagy új bejelentkezéskor.

Indítási alkalmazások

Az Ubuntu és más GNOME -alapú disztribúciók egyszerűen indítási alkalmazásoknak nevezett alkalmazással érkeznek. Használható olyan alkalmazások és szkriptek kezelésére, amelyek friss rendszerindításkor vagy bejelentkezéskor futnak.







Indítsa el az Indítóalkalmazások alkalmazást az alkalmazásindítóból, és kattintson a Hozzáadás gombra új bejegyzés hozzáadásához.





Töltse ki a Név és Parancs mezőket igényeinek megfelelően, majd kattintson a Hozzáadás gombra az új bejegyzés létrehozásának befejezéséhez. Az alábbi képernyőképen létrehozott bejegyzés minden biztonsági másolat készítésekor emlékeztetőt küld rendszer -értesítésként minden újraindításkor / bejelentkezéskor. Lecserélheti saját paranccsal vagy a bash szkript teljes elérési útjával. Használhat bármilyen létező rendszerparancsot vagy végrehajtható fájlt is, amelyek általában a fájlrendszer különböző mappáiban találhatók.





Amint fentebb említettük, minden újraindításkor megjelenik egy biztonsági emlékeztető.



Systemd

A Systemd egy démon és szolgáltatáskezelő, amely különféle segédprogramokat tartalmaz a rendszerfolyamatok és az operációs rendszer összetevőinek kezelésére. Leegyszerűsített formájában jellemzően a szolgáltatások indítására és befejezésére szolgál egy friss rendszerindítási ciklusban.

A Systemd segítségével automatikusan elindítható egy alkalmazás, vagy futtatható egy szkript új rendszerindításkor. A fent ismertetett biztonsági mentési emlékeztető értesítés létrehozásához először létre kell hoznia a szükséges mappákat és fájlokat az alábbi parancsok futtatásával:

$mkdir -p~/.config/rendszer/felhasználó
$nano~/.config/rendszer/felhasználó/backup_reminder.service

Cserélje ki a nano -t a kedvenc szövegszerkesztő parancsára. Cserélje le a backup_reminder -t tetszőleges más névre.

Illessze be az alábbi kódot a backup_reminder.service fájlba, amelyet a fenti paranccsal hoztak létre.

[Mértékegység]
Leírás = Biztonsági emlékeztetőt küld minden újraindításkor
PartOf = graphical-session.target

[Szolgáltatás]
ExecStart = bash -c 'sleep 10; értesítés-küldés 'Készíts biztonsági másolatot'
Típus = onehot

[Telepítés]
WantedBy = graphical-session.target

A fenti kód meglehetősen egyszerű. Biztonsági mentés készítéséről értesítést küld 10 másodperccel a grafikus munkamenet betöltése után (minden újraindítás vagy bejelentkezés alkalmával).

Futtassa az alábbi parancsokat a szolgáltatás engedélyezéséhez, hogy minden újraindításkor automatikusan fusson.

$chmod 644~/.config/rendszer/felhasználó/backup_reminder.service
$ systemctl--felhasználó engedélyezzebackup_reminder.service
$ systemctl--felhasználódémon-újratöltés
$ újraindítás

Ez csak egy egyszerű példa egy alapvető parancs futtatására rendszerindításkor rendszerindításkor. Létrehozhat speciális szolgáltatásokat is több feltétellel és több paranccsal. További információkért tekintse meg a systemd man oldalt az alábbi parancs futtatásával:

$Férfirendszer

Vegye figyelembe, hogy ez a példa elmagyarázza egy új szolgáltatás létrehozását, amely nem igényel root hozzáférést, és alkalmas olyan alkalmazások automatikus indítására, amelyek nem igényelnek root jogosultságokat. Ha root jogosultságot igénylő szkripteket szeretne automatikusan elindítani, akkor az/etc/systemd/system könyvtárban létre kell hoznia egy új systemd szolgáltatást a ~/.config/systemd/user mappa helyett, és ki kell hagynia a –user kapcsolót a fent említett parancsokban.

Cron Job

A Cron egy olyan eszköz, amely rendszeresen futtathat ütemezett feladatokat a felhasználó által meghatározott feltételeknek megfelelően. Ezeket az ütemezett feladatokat a Crontab egy előre meghatározott formátumban hozza létre. Egyszerűen fogalmazva, a Crontab megmondja a Cronnak, hogy mely feladatokat milyen időpontban kell futtatni.

A systemd -hez hasonlóan a crontab jobok is használhatók alkalmazások indítására és parancsfájlok automatikus futtatására a rendszerindításkor. Új cron feladat hozzáadásához futtassa az alábbi parancsot:

$crontab-És

Adja hozzá a következő sorokat a szövegfájl végéhez (minden újraindításkor automatikusan elindítja a GNOME terminált):

SHELL =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Használhatja a saját parancsát, vagy megadhatja a shell parancsfájl teljes elérési útját.

Ne feledje, hogy a systemd -től eltérően a cron nem tudja észlelni, hogy a grafikus munkamenet betöltődött -e vagy sem. Meg kell adnia egy becsült várakozási időt az X szerver betöltéséig és egy megjelenítési azonosítót. A megjelenített azonosítóról az alábbi parancs futtatásával tudhat meg:

$kidobta $ DISPLAY

A parancs vagy parancsfájl végrehajtása előtti késleltetés a rendszer konfigurációjától és a rendszerindítási időtől függ.

Rc.local

Egy másik módszer a parancsfájlok és parancsok indításkor történő futtatására az rc.local fájl használata. Vegye figyelembe, hogy a tesztelés során nem tudtam elhalasztani a szkript végrehajtását, amíg a grafikus munkamenet élőben nem volt. Az alvás késleltetésének hozzáadása késleltetheti a bejelentkezési képernyő megjelenítését. Emiatt nem jártam sikerrel grafikus alkalmazások futtatásakor indításkor az rc.local fájl használatával. Az rc.local szerkesztéséhez root hozzáférésre is szükség van, ellentétben az összes többi fentebb ismertetett példával.

Ha parancsokat / szkripteket szeretne hozzáadni az rc.local fájlhoz, futtassa az alábbi parancsot (új rc.local fájlt hoz létre, ha nem létezik):

$sudo nano /stb./rc.local

Adja hozzá parancsait #közé! /bin/bash és exit 0 sorok, az alábbiak szerint:

#! /bin/bash
elérési út//a/my_script.sh
kilépés 0

Futtassa futtathatóvá az rc.local fájlt az alábbi parancs futtatásával:

$sudo chmod+ x/stb./rc.local

Csak indítsa újra, hogy az indítási szkript életbe lépjen.

Következtetés

Ez néhány módszer, amellyel indításkor automatikusan futtathatók a szkriptek és alkalmazások. Ha olyan parancsfájlokat szeretne futtatni, amelyek nem igényelnek root hozzáférést, akkor javaslom az Indítási alkalmazások GUI alkalmazás használatát. Ha root hozzáféréssel szeretne futtatni alkalmazásokat és parancsfájlokat, azt javaslom, hogy hozzon létre rendszerszintű rendszerezett szolgáltatást.

A szerzőről

Nitesh Kumar

Szabadúszó szoftverfejlesztő és tartalomíró vagyok, aki szereti a Linuxot, a nyílt forráskódú szoftvereket és a szabad szoftverközösséget.

Az összes bejegyzés megtekintése